修改文件中的现有行 - Java

时间:2014-01-15 13:40:07

标签: java file text-processing

我需要一些帮助或代码示例来更新现有行。

文件内容:

Heinrich: 30
George: 2020
Fred: 9090129

如果我想更新(写)乔治的价值说300,我怎么能实现这个目标呢?

编辑:或者只使用YAML会更好吗?

感谢。

1 个答案:

答案 0 :(得分:3)

这是一种方法,尝试一下。在此示例中,文件为 C:/user.txt ,我通过 1234

更改George的值
public class George {
    private static List<String> lines;

    public static void main (String [] args) throws IOException{
        File f = new File("C:/user.txt");
        lines = Files.readAllLines(f.toPath(),Charset.defaultCharset());
        changeValueOf("Georges", 1234); // the name and the value you want to modify
        Files.write(f.toPath(), changeValueOf("George", 1234), Charset.defaultCharset());
    }

    private static List<String> changeValueOf(String username, int newVal){
        List<String> newLines = new ArrayList<String>();
        for(String line: lines){
            if(line.contains(username)){
                String [] vals = line.split(": ");
                newLines.add(vals[0]+": "+String.valueOf(newVal));
            }else{
                newLines.add(line);
            }

        }
        return newLines;
    }
}

这是一个有效的解决方案,但我认为还有其他方法更有效。