0

在这种情况下最好使用哪个类,我应该调用什么方法来替换指定行的值?

4

4 回答 4

1

卡亚曼的答案是错误的。

  1. 在编程中,大多数情况下有许多解决方案。这就是为什么“唯一的方法是……”是错误的。
  2. Kayaman的解决方案仅适用于大小小于可用 Java 堆大小的非常小的文件。但是应该在问题描述中指定,例如“最大文件大小为 1MB,JVM 堆大小为 128MB”。如果您使用 256MB 堆运行 Java 并且您的文件是 20GB,那么它将无法正常工作。
  3. 甚至逐行读取和写入也可能不起作用,因为行可能比堆大小长。
于 2013-09-29T17:10:45.250 回答
0

唯一的方法是读取所有行,然后将它们写回,修改指定的行。所以BufferedReaderBufferedWriter将是你的主要武器。

于 2013-09-29T16:37:45.677 回答
0
until eof
   read line
   increment line number 
   if the line number is the specified line
       replace content
   end if
   write the modified line 

结束直到

于 2013-09-29T16:39:19.237 回答
0

如果您有行号,则使用 BufferedWriter 类获取行号,然后使用 BufferedWriter 对象在包含现有行的同一行号上写入新行。

如果您事先不知道编号,则需要先使用 BufferedReader 读取文件,到达行号,然后按照上述步骤替换行号。

于 2013-09-29T16:53:12.613 回答