【问题标题】:How to write text between two lines in a text file. Java如何在文本文件的两行之间写入文本。爪哇
【发布时间】:2015-05-02 03:18:32
【问题描述】:

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

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

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

最好的方法是什么?

【问题讨论】:

  • 找到任何解决方案??

标签: java lines between printwriter writer


【解决方案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 读取是使用它的许多 read() 方法之一完成的。这是一个简单的例子:

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

int aByte = file.read();

file.close();

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

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

写入 RandomAccessFile

可以使用多个 write() 方法之一来写入 RandomAccessFile。这是一个简单的例子:

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

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

file.close();

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

关闭()

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

【讨论】:

  • 问题是关于在文件中的其他文本之间添加一些文本。但是这个解决方案替换从指针位置开始的现有文本。
猜你喜欢
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2016-01-16
  • 2020-08-06
  • 2013-01-08
相关资源
最近更新 更多