gpt4 book ai didi

java - 修改文件的特定行 - Java

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:30 25 4
gpt4 key购买 nike

我想知道 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 以外的任何其他值,我会收到此异常:

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

基本上我想做的是切换值。如果我在第 x 行有“0”,我想在那里放一个“1”,反之亦然。一行中不会存储其他信息,仅存储 1 或 0。

最佳答案

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

write(String s, int off, int len)
Writes a portion of a String.

所以基本上你所做的就是将 String s 从字符号 off 写入到字符号 len-1。

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

关于java - 修改文件的特定行 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37159450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com