美文网首页
17. Java IO: RandomAccessFile

17. Java IO: RandomAccessFile

作者: kopshome | 来源:发表于2017-11-26 17:44 被阅读0次

想要查看此教程的目录请点击:Java IO教程目录贴地址


使用RandomAccessFile可以让你在文件中来回移动进行来读写操作,也可以覆盖文件中的某部分内容。这是FileInputStream和FileOutputStream做不到的。

创建RandomAccessFile

使用之前,你必须实例化一个RandomAccessFile对象,下面展示如何撞见一个对象实例:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");

注意构造方法的第二个参数为“rw”。这是打开文件的模式。“rw”代表为只读模式。更多模式请查看java API手册。

利用RandomAccessFile在文件中跳转

在特殊的位置来读写,你必须先将指针移动到指定位置,这个可以用seek()方法。利用getFilePointer()可以得到当前的文件中指针位置。下面是一个简单的例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close();

从文件中读取内容

读取内容,可以用RandomAccessFile众多read()方法中的一个,下面是一个例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
int aByte = file.read();
file.close();

read()方法每次读取一个字节,在当前文件中指针所指向的位置。

给你一个javaDOC没有提及的东西:read()方法运行时,文件指针增长是在字节刚读取之后。这意味着你可以继续调用方法而不用手动的指定文件指针。

写入到文件

写入到文件,可以调用其众多write()方法的其中一个,下面是一个例子:

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.write("Hello World".getBytes());
file.close();

和read()方法一样,在调write()方法之后文件指针会自动像前移动。这样就不用手动去移动文件指针。

close()

在使用完RandomAccessFile之后,你必须调用close()方法。你可以看教程中之前的例子来学如果关闭流。

RandomAccessFile的异常处理

为了让上面的示例看起来更清晰,并没了考虑异常处理。然而,RandomAccessFile必须在使用后将其关闭,就像其他的流或reader/writer一样,流的关闭前后的异常处理,请看第十二章节。

相关文章

  • 17. Java IO: RandomAccessFile

    想要查看此教程的目录请点击:Java IO教程目录贴地址 使用RandomAccessFile可以让你在文件中来回...

  • 2018-06-08 第三十三天

    一、RandomAccessFile java.io.RandomAccessFile:随机存取文件。这个功能很强...

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • Java IO流(RandomAccessFile)

    RandomAccessFile:该类不是IO体系中的子类。而是直接继承自Object。但是它是IO包中成员,因为...

  • Java IO笔记(RandomAccessFile)

    (最近刚来到简书平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看...

  • Java-IO流-RandomAccessFile

  • Java IO操作之RandomAccessFile

    RandomAccessFile类的主要功能是完成随机读取功能,可以读取指定位置的内容,File类只是针对文件本身...

  • Java基础-IO流-RandomAccessFile

    Java工程师知识树[https://www.jianshu.com/p/db77d19a25f6] / Ja...

  • Day21--IO流

    对象的序列化 管道流 RandomAccessFile RandomAccessFile:该类不是算是IO体系中子...

  • java的file操作2

    1.java.io.RandomAccessFile:该类设计用来专门读写文件数据。其基于指针进行读写,即:总是在...

网友评论

      本文标题:17. Java IO: RandomAccessFile

      本文链接:https://www.haomeiwen.com/subject/ajzkbxtx.html