Java中如何使用随机存取文件RandomAcessFile类?

来源:互联网 发布:淘宝好的学生围巾店 编辑:程序博客网 时间:2024/04/29 03:10

 InputStreamOutputStream都只是单方面的读和写文件的内容,如果有随机的读取和写入文件内容的需要那该怎么办?

Java为我们提供了一个RandomAcessFile类,它就是专门用来随机存取文件的内容的。

  RandomAcessFile操作文件内容的时候,就好像操作一块内存区域一样。把字节用下标数字来进行定位,通过调用RandomAcessFileAPI方法,把指针的指向进行一定,达到随机存取数据的目的,主要的方法如下:

length()  得到文件内容的字节长度

seek()    设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。

read()和write() 读取和写入字节数据

以下是将文件中的所有字母a换成字母的c的示例程序。

public class Test5 {public static void main(String[] args) {try {//创建随机读取文件对象RandomAccessFile file=new RandomAccessFile("D://1.txt", "rw");//遍历file的字节的数据try {for (int i = 0; i < file.length(); i++) {byte b=(byte) file.read();//read()方法读取一个字节char c=(char) b;//转换成char类型if(c=='a'){file.seek(i);file.write('c');//这个位置写入新的字符}}file.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

说明:RandomAcessFile的大多数方法都会抛出IOException,以上示例程序只是简单的try-catch,而在实际的开发中,应该针对不同的情况,不同的异常做出不同的响应。

 

总结:

RandomAcessFile的使用思路主要包括以下一些项目:

1.length()方法获取文件的内容长度

2.seek()方法随机的到达任何需要存储数据的地方

3.调用read()方法获取当前位置的数据,用write()方法写入数据

4.完成需要后,调研close方法关闭文件的打开



0 0
原创粉丝点击