RandomAccessFile详解
此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过 getFilePointer
方法读取,并通过 seek
方法设置。
通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException
(是一种 IOException
)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException
,而不是 EOFException
。需要特别指出的是,如果流已被关闭,则可能抛出 IOException
。
构造方法:
import java.io.File;
import java.io.RandomAccessFile; public class Main {
public static void main(String[] args) throws Exception {
//
RandomAccessFile randomAccessFile = new RandomAccessFile("hello.txt","rw") ;
//
File file = new File("hello.txt");
RandomAccessFile randomAccessFile1 = new RandomAccessFile(file,"rw") ;
}
}
方法摘要:
close() 关闭RandomAccessFile实例打开的文件。
import java.io.RandomAccessFile; public class Main {
public static void main(String[] args) throws Exception {
RandomAccessFile randomAccessFile = new RandomAccessFile("hello.txt","rw") ;
randomAccessFile.close();
}
}
seek() 文件指针移动。
import java.io.RandomAccessFile; public class Main {
public static void main(String[] args) throws Exception {
RandomAccessFile randomAccessFile = new RandomAccessFile("hello.txt","rw") ;
// seek 参数为 long
long w = 100 ;
randomAccessFile.seek(w);
randomAccessFile.close();
}
}
length() 文件长度
import java.io.RandomAccessFile; public class Main {
public static void main(String[] args) throws Exception {
RandomAccessFile randomAccessFile = new RandomAccessFile("hello.txt","rw") ;
long len = randomAccessFile.length();
randomAccessFile.close();
}
}
读取:
read()
read(byte[] b)
read(byte[] b,int off,int len)
readLine()
readBoolean()
readDouble()
readFloat()
readByte()
readChar()
写入:
write(byte []b)
write(byte []b,int off,int len)
write(int b)
writeBoolean(boolean v)
writeByte(int v)
writeBytes(String s)
writeChar(int v)
writeChars(String s)
writeDouble(double v)
writeFloat(float v)
writeInt(int v)
writeLong(long v)
writeShort(int v)
writeUTF(String str)
注 : RandomAccessFile可利用多线程完成对一个大文件的读写,利用seek对文件进行切分,从大文件的不同位置开线程进行读写。
最新文章
- C#如何获取本机网络IP地址
- oracle递归查询树的SQL语句
- 详解 iOS 上机题!附个人见解
- jquery甘特图免费下载
- linux中断的上半部和下半部 【转】
- Github/Eclipse管理Maven项目
- gcc-4.8.3安装,gdb-7.6安装
- JavaScript中的Function(函数)对象
- [CentOS]yum安装postgres和ntfs-3g
- pinyin4j
- plsql设置窗口默认格式
- tomcat 配置项目
- 安卓2D游戏开发设置
- Android初级教程理论知识(第八章网络编程二)
- 【常用指令】git+服务器+数据库
- luogu 1731 搜索剪枝好题
- koa2入门使用总结
- FineUIMvc随笔(7)扩展通知对话框(显示多个不重叠)
- UVa839
- Windows安装配置Anaconda2/PyCharm
热门文章
- backface-visibility 3D修复
- sass学习--安装ruby
- 5. 监视和ZooKeeper操作
- MySQL中Left Join和Right Join的理解
- Facebook-Haystack合并小文件
- web工程自动部署(tomcat服务器)
- TensorFlow学习笔记(一):数据操作指南
- PyCharm教程
- 《java.util.concurrent 包源码阅读》26 Fork/Join框架之Join
- 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件