当前位置: 首页 > 知识库问答 >
问题:

修改文件的特定行-Java

麻烨
2023-03-14

我想知道在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,我收到这个异常:

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

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

共有1个答案

姚航
2023-03-14

缓冲写入中的偏移量。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.

所以基本上你要做的就是把字符串s从字符号写到字符号len-1。

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

 类似资料:
  • 问题内容: 你好堆栈溢出的朋友。我有一个简单的问题,我担心没有简单的解决方案,我需要有关如何进行的建议。我正在开发一个打包为可执行JAR的Java应用程序,但它需要在执行过程中修改其某些JAR文件内容。在此阶段,我遇到了问题,因为某些操作系统锁定了文件,从而阻止了对该文件的写入。 用户必须在应用程序退出时看到jar文件的更新版本,这一点非常重要,尽管我可以非常灵活地实现这一目标。干净,高效的解决方

  • 介绍 我用这个项目挑战自己。 我需要修改.txt上特定行的数据,而无需执行以下操作: 将所有内容加载到内存中(地图,列表,数组... 必须复制文件(例如 - 一个简单的.txt文件将拥有一切! 文本文件 遵循这种格式,即以“;”作为分隔符的字符串。 我的代码尝试从0到9的数字 (0 到 9 表示第一个数字 - 理解问题 字符串 - 最后两个“0”将是另一个日期格式,即“yy/MM/dd HH:MM

  • 我试图找到最长回文子串问题的algo。

  • 我有一个大型git项目,我愚蠢地将其导入eclipse并运行了自动格式化。现在,项目中的每个文件都显示为已修改。与其提交我的格式化文件,我宁愿恢复所有我只格式化过且没有其他更改的文件。例如: 我知道那是文件2。cpp文件2。h和文件3。已使用内容(即,不只是格式化)修改了cpp。我想隐藏对这三个文件的更改,然后签出一个旧版本,这样我就可以在之后重新应用对这些文件的更改。我宁愿避免这样的事情: 如果

  • 问题内容: 我想修改jar中的文件。是否可以在我的应用程序中执行此操作而无需提取并重新创建? 我要修改的文件是配置文件,主要是基于xml的文件。 我感兴趣的原因是,如果我将其解压缩,则无法再次创建.exe文件。 问题答案: 我想修改中的文件。是否可以在我的应用程序中执行此操作而无需提取并重新创建? 我要修改的文件是配置文件,主要是基于的文件。 我感兴趣的原因是,如果我将其解压缩,则你可以将u选项用

  • 本文向大家介绍Git 提交特定文件中的更改,包括了Git 提交特定文件中的更改的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用以下命令提交对特定文件的更改,并跳过暂存文件git add: 或者,您可以首先暂存文件: 稍后再提交: