// 关于创建参数
new RandomAccessFile(filePath, "r"); // 只读 文件不存在时会抛出异常
new RandomAccessFile(filePath, "rw"); // 读写 文件不存在时 会创建文件
new RandomAccessFile(filePath, "rws"); // 读写 内容和元数据均同步 文件不存在时 会创建文件
new RandomAccessFile(filePath, "rwd"); // 读写 内容同步 文件不存在时 会创建文件
解释一下rws与rwd的区别,rws会在同步内容时保持元数据的同步 例如最后修改时间,rwd则不保证元数据的同步。
用RandomAccessFile来操作字节数据是一个不错的主意。
看一个典型的例子:
public class RandomAccessFileStudy {
private RandomAccessFile mRdmAcsFile;
public RandomAccessFileStudy() {
//文件一开始是不存在的
String fileName = "rdm_acs_file.txt";
String filePath = RandomAccessFileStudy.class.getResource("").getPath() + fileName;
System.out.println(filePath); ///home/jpeng/story/workspace/default/JavaPrj/bin/study/base/file/rdm_acs_file.txt
try {
mRdmAcsFile = new RandomAccessFile(filePath, "rws");
System.out.println("length:" + mRdmAcsFile.length());//length:0
mRdmAcsFile.write(new byte[] { '1', '2', '3', '4', '5' });//文件内容:12345
System.out.println("length:" + mRdmAcsFile.length());//length:5
mRdmAcsFile.seek(0);
mRdmAcsFile.writeByte('a');//文件内容:a2345
System.out.println("length:" + mRdmAcsFile.length());//length:5
mRdmAcsFile.seek(1);
mRdmAcsFile.writeByte('b');//文件内容:ab345
System.out.println("length:" + mRdmAcsFile.length());//length:5
mRdmAcsFile.seek(4);
mRdmAcsFile.write(new byte[]{'x','y','z'});//文件内容:ab34xyz
System.out.println("length:" + mRdmAcsFile.length());//length:7
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
RandomAccessFileStudy rdmAcsFileStudy = new RandomAccessFileStudy();
}
}
RandomAccessFile提供了setLength方法,可以让我们在不知道文件内容情况下设置文件大小,使其占用足够的磁盘空间,然后使用seek方法进行制定位置的替换写入操作,这在资源下载时非常有用。
分享到:
相关推荐
RandomAccessFile处理文件的案例
RandomAccessFile 解决乱码
还用dist目录下的Start.jar和splash.png是我的另外的一个项目在这的作用是“闪屏”功能,要JDK1.6才能支持的,源代码以后放吧。所以,请自行备份吧!可以用别的图片代替,但名字一定是splash.png的。 望大家多提建议...
对文件夹里面的文件进行分类,配置文件是config.xml,文件包含同一个关键字的放入同一个文件夹,不支持对文件夹的分类,所有的操作利用了RandomAccssFile进行文件复制
RandomAccessFile类的用法.docRandomAccessFile类的用法.docRandomAccessFile类的用法.doc
Java中正确使用RandomAccessFile向文件中写入中文
体会RandomAccessFile随机访问文件的用法
RandomAccessFile(下).mp4
java api中的java.io.RandomAccessFile类实现文件的随机写入.
使用RandomAccessFile流将一个文本文件读出,并导致写入到另一个文件当中。
因为使用其他文件流修改文件时是整体的替换,导致SVN上传上去后是整个文件都修改了,所以需要增量修改,这个demo是使用RandomAccessFile增量修改,只修改指定的行,很实用
文件操作——File 、 RandomAccessFile(上).mp4
文件操作——File 、 RandomAccessFile(上).mp4
在JAVA程序设计不少涉及到对文件的读写操作,本例针对这方面的问题,介绍RandomAccessFile类的文件读写操作,文件中包含有1个java文件和1个class文件
主要介绍了java使用RandomAccessFile类基于指针读写文件实例代码,具有一定参考价值,需要的朋友可以了解下。
【IT十八掌徐培成】Java基础第16天-01.RandomAccessFile.zip
NIO_RandomAccessFile_多线程读本地CSV文件(java==> google guava包ListenableFuture) reader里有个main函数,更改文件路径后,直接运行即可
花1K内存实现高效I-O的RandomAccessFile类 自己搜搜这个关键字. 我主要是用来优化Android上多线程断点下载的写文件效率 RandomAccessFile是操作硬盘的,比操作内存的数据慢了几百万倍, 所有有人做出优化,我特上传...
RandomAccessFile随机文本,使用多线程处理复制文件
Console 此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)。 DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。 DataOutputStream...