我想知道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。
答案 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。