修改文件的特定行-Java
我想知道在Java中是否可以修改文本文件中的特定行。我有一个如下所示的文本文件: 第1行:0 第2行:1 第3行:0 第4行:1 我用的是:修改文件的特定行-Java,java,Java,我想知道在Java中是否可以修改文本文件中的特定行。我有一个如下所示的文本文件: 第1行:0 第2行:1 第3行:0 第4行:1 我用的是: FileWriter fw = new FileWriter("seats.txt",true); BufferedWriter bw = new BufferedWriter(fw); bw.write("2", 0, 1); 输出是这样的: 第1行:0 第2行:1 第3行:0 第4行:12 等等 如果我将偏移设置为0以外的任何其他值,我将收到以下异常
FileWriter fw = new FileWriter("seats.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("2", 0, 1);
输出是这样的:
第1行:0
第2行:1
第3行:0
第4行:12
等等
如果我将偏移设置为0以外的任何其他值,我将收到以下异常:
线程“AWT-EventQueue-0”java.lang.StringIndexOutOfBoundsException中出现异常:字符串索引超出范围:2
基本上我想做的是切换值。如果第x行有“0”,我想在其中加一个“1”,反之亦然。行上不会存储任何其他信息,只有1或0。BufferedWrite.write()方法中的偏移量不是要写入的文件中的偏移量,而是要写入的字符串中的偏移量。 如果查看文档,您将看到以下内容:
write(String s, int off, int len)
Writes a portion of a String.
所以基本上你要做的就是把字符串s从字符号写到字符号len-1
我建议(据我所知)也创建一个BufferedReader,读取所有文件,然后覆盖现有文件,使用一些循环和条件一次检查每一行,然后写入相应的值。
您可以改为使用write(int c)方法,因为您只写入0或1。BufferedWrite.write()方法中的偏移量不是您试图写入的文件中的偏移量,而是您在其中的字符串中的偏移量。 如果查看文档,您将看到以下内容:
write(String s, int off, int len)
Writes a portion of a String.
所以基本上你要做的就是把字符串s从字符号写到字符号len-1
我建议(据我所知)也创建一个BufferedReader,读取所有文件,然后覆盖现有文件,使用一些循环和条件一次检查每一行,然后写入相应的值。
您可以改用write(int c)方法,因为您只写0或1。我已经使用BufferedReader读取了我的文件,但我没有想到用修改过的数组重写所有文件。谢谢,我会用你的建议!我已经使用BufferedReader读取了我的文件,但我没有想到要用修改过的数组重写所有文件。谢谢,我会用你的建议!