2015-05-02 31 views
3

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

例: 文本前:狗鼠标 文本之后:文本文件狗猫鼠

比较长,所以我不能只是读了整个事情,并从那里编辑字符串。

什么是最好的方式去做这件事?

+0

找到任何解决方案? –

回答

1

您可以使用RandomAccessFile类。

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

注意构造函数的第二个输入参数:“rw”。这是您要打开文件的模式。“rw”表示读/写模式。检查的JavaDoc什么模式,你可以在打开一个RandomAccessFile的更多细节。

四处移动RandomAccessFile的

要阅读或在RandomAccessFile的特定位置写上你必须将文件指针在第一位置位置读取或写入。这是使用seek()方法完成的。文件指针的当前位置可以通过调用getFilePointer()方法获得。

下面是一个简单的例子:

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

file.seek(200); 

long pointer = file.getFilePointer(); 

file.close(); 

从RandomAccessFile的

从RandomAccessFile的读读正在利用其多个读()方法中的一种完成。下面是一个简单的例子:

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

int aByte = file.read(); 

file.close(); 

读()方法读取位于文件中的位置当前指向的字节通过在RandomAccessFile的实例中的文件指针。

以下是JavaDoc忘记提及的一件事情:read()方法将文件指针递增指向刚刚读取的字节后文件中的下一个字节!这意味着您可以继续调用read()而不必手动移动文件指针。

写入到的RandomAccessFile

写入到的RandomAccessFile可以使用一个它众多的write()方法来完成。下面是一个简单的例子:

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

file.write("Hello World".getBytes()); 

file.close(); 

就像与read()方法写()方法前进被调用之后的文件指针。这样,您不必经常移动文件指针,将数据写入文件中的新位置。

接近()

的RandomAccessFile中有当您使用RandomAccessFile的情况下完成的,必须被称为close()方法。你可以在上面的例子中看到调用close()的例子。

+0

问题是**在文件中的其他文件之间添加**文本。但是这个解决方案**从指针位置开始替换**现有的文本。 – Salvador

相关问题