在java中,如何编辑文本文件的一行?
好的,我知道行的值,我没有行号,我怎么能只编辑一行呢 它是一个配置文件,即 x=y 我需要一个命令来编辑x=y到x=y,z在java中,如何编辑文本文件的一行?,java,configuration-files,Java,Configuration Files,好的,我知道行的值,我没有行号,我怎么能只编辑一行呢 它是一个配置文件,即 x=y 我需要一个命令来编辑x=y到x=y,z 甚至x=z.除非新线的长度与旧线的长度完全相同,否则最好的选择是 打开一个临时输出文件 逐行读取配置文件 搜索你的钥匙 如果找不到,只需将刚刚读取的行写入输出文件 如果可以找到,则将新值写入临时文件 直到你击中EOF 删除旧文件 将新文件重命名为旧文件 如果您的配置文件很小,您还可以在内存中执行整个解析/修改步骤,然后将最终结果写回配置文件,这样您就可以跳过临时文件(尽
甚至x=z.除非新线的长度与旧线的长度完全相同,否则最好的选择是
- 打开一个临时输出文件
- 逐行读取配置文件
- 搜索你的钥匙
- 如果找不到,只需将刚刚读取的行写入输出文件
- 如果可以找到,则将新值写入临时文件
- 直到你击中EOF
- 删除旧文件
- 将新文件重命名为旧文件
如果这不是你想要的,你应该编辑你的问题,使其更加清晰。我只是在猜测你的要求。一种方法是:
遗憾的是,没有重写或删除一个普通文本文件中间的字符而不重写文件的大部分内容。这个“问题”不是Java特有的。这对于大多数主流操作系统上的文本文件建模/表示方式至关重要。如果您使用该配置格式,您可能希望使用 java.util.Properties 要在该文件上读/写的组件
但是,如果您只想手工编辑它,您可以只编辑并匹配要更改的变量。如果您的数据都是键和值对,例如 键1=值1 键2=值2 。。。然后将它们加载到属性对象中。在我看来,您需要一个FileInputStream来加载属性,使用myProperties.put(key,value)进行修改,然后使用FileOutputStream保存属性 希望这有帮助
rh在Java中,您可以使用`属性类:
app.config文件:
x=y
java: public void writeConfig() throws Exception {
Properties tempProp = new Properties();
tempProp.load(new FileInputStream("app.config"));
tempProp.setProperty("x", "y,z");
tempProp.store(new FileOutputStream("app.config"), null);
}
我想他有一个基于行的配置文件(就像旧的Windows3.1版本一样),他想把一行从“key=value”替换成“key=value2”之类的东西。。。他在找一把钥匙什么的。问题还不清楚。请把问题解释清楚,否则你就得不到正确的答案。什么。我很清楚这个问题。你们不明白吗?(不是讽刺!)