修改文件的特定行 - Java

时间:2016-05-11 10:10:32

标签: java

我想知道Java中是否可以修改文本文件中的特定行。我有一个文本文件,如下所示:

row1:0

第2行:1

row3:0

第4行:1

我正在使用它:

FileWriter fw = new FileWriter("seats.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("2", 0, 1);

输出是这样的:

row1:0

第2行:1

row3:0

row4:12

如果我将偏移量设置为0以外的任何其他值,我会收到此异常:

线程中的异常" AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:2

基本上我想要做的是切换值。如果我有" 0"在第x行,我想在其中放置一个" 1"反之亦然。没有其他信息将存储在一行,只有1或0。

1 个答案:

答案 0 :(得分:0)

BufferedWrite.write()方法中的偏移量不是您尝试写入的文件中的偏移量,而是您在其中的String中的偏移量。 如果您查看文档https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html,您会看到以下内容:

@Ordered

所以基本上你正在做的是将字符串s中的字符串写入字符编号len-1。

我建议(据我所知)也是创建一个BufferedReader,读取所有文件,然后覆盖现有文件,一次用一些循环和条件检查每一行,然后写入相应的值。 您可以使用write(int c)方法,因为您只写0或1。