在 Java 中替换文本文件中的特定字符串

Replacing a specific string from a text file in Java

提问人:xephsandar 提问时间:1/8/2022 更新时间:1/8/2022 访问量:419

问:

我有一个这样的文本文件:图像

第一列表示用户 ID,最后一列表示余额。我想遍历这些元素以查找特定的用户 ID,然后更新其余额。我已经设法匹配了用户 ID 并使用扫描仪访问余额,但我不确定如何使用新值更新文本文件中的余额。这是我目前编写的代码:

        File file = new File("UserInfo.txt");
        Scanner sc = new Scanner(file);
        
        while(sc.hasNextLine()){
            String info = sc.nextLine();
            String data[] = info.split(" ");
            //userId is a function argument
            if(String.valueOf(userId).equals(data[0])){
               //I want to update the balance in the text file with a new value here
            }else{
                continue;
            }
        }
        sc.close();
java 字符串 文件 文件-io java.util.scanner

评论

0赞 ErayZaxy 1/8/2022
您必须首先考虑将文本文件中的所有这些对象放入程序内部的列表或数组中。然后你可以在那里编辑它们。之后,只需存储从列表到文本文件的所有内容即可。

答:

0赞 Paki 1/8/2022 #1

您似乎要创建一个 CSV 文件。我的建议是使用 “;” 作为 split() 命令的分隔符,如果文件不是太大,请读取整个文件,将其放入 arrayList of Strings 中,然后操作它,从 arrayList 重写最后的整个文件。否则,您必须使用 RandomAccess 类

0赞 Łukasz Karasiński 1/8/2022 #2

替换文件中的字符串并不是那么简单。您必须读取整个文件并重写要保持不变的部分。只有当比较条件满足时,您才会使用函数来更改用户余额。userIDdata[0]replace()

您的文件基本上是CSV文件,用空格作为行分隔符,如前所述,将文件内容存储在数组中或,更改适当的行,然后导出回CSV。BufferedReader