如何在文本文件的两行之间书写文本.Java



这是针对Java的我正在尝试编写一个使用PrintWriter写入文本文件的程序。我已经能够在文件末尾添加文本,但我需要能够在两个单词之间写入文本。

例如:前面的文本:狗鼠标文字后:狗猫鼠标

文本文件比较长,所以我不能只读取整个内容并从中编辑字符串。

对此,最好的方法是什么?

您可以使用RandomAccessFile类。

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

注意构造函数的第二个输入参数:"rw"。这是您想要打开文件的模式。"rw"表示读/写模式。查看JavaDoc了解更多关于可以在.中打开RandomAccess文件的模式的详细信息

移动随机访问文件

要在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()方法读取位于文件中RandomAccessFile实例中文件指针当前指向的位置的字节。

JavaDoc忘了提到一件事:read()方法增加文件指针,使其指向文件中刚刚读取的字节之后的下一个字节!这意味着您可以继续调用read(),而无需手动移动文件指针。

写入RandomAccess文件

对RandomAccessFile的写入可以使用一个多写()方法来完成。这里有一个简单的例子:

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

就像read()方法一样,write()在被调用后推进文件指针。这样,您就不必不断地移动文件指针来将数据写入文件中的新位置。

关闭()

RandomAccessFile有一个close()方法,当您使用完RandomAccess File实例时,必须调用该方法。您可以在上面的示例中看到调用close()的示例。

最新更新