繁体   English   中英

如何在不使用 Java 删除现有数据的情况下修改文件中的特定行?

[英]How can I modify a particular line in a file without deleting the existing data using Java?

我需要更改超过 30 行的文件中的值,每行都有如下数据:ENABLE_TLS=true PSWD_MIN_LENGTH=8

在这里,让我们将其视为键值对,我只需要更改第 2 行的值,而不删除第 1 行。 有人可以帮我我该怎么做吗?

我试过 bufferedwriter,但它正在替换所有行。

我的期望是:我只需要修改一个特定键的值,其余行不应该被删除

您对数据的描述听起来像 Java Properties 如果您确定该文件中的所有数据都采用key=value的形式,您可以将其作为Properties对象读入,更新相关键的值,然后将其写回文件。

Properties properties = new Properties();
try (FileInputStream inputStream = new FileInputStream("/path/to/file")) {
   properties.load(inputStream);
}

properties.put("PSWD_MIN_LENGTH", 12);

try (FileOutputStream outputStream = new FileOutputStream("/path/to/file")) {
   properties.store(outputStream, null);
}

注意:不能保证文件中键/值条目的顺序将得到维护(它们可能不会)。 如果您正在寻找将保持顺序的Properties实现,也许这个 SO 答案可以解决问题(未经测试!) 如何保持 Java 属性文件中键的顺序?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM