我正在寻找以下问题的解决方案。我正在创建一个.txt文件,然后在其中添加值。我正在运行循环,不希望在txt文件中重复相同的值。所以基本上我需要一个IF STATEMENT
来读取.txt文件并检查该值,然后将它添加到.txt文件中,如果它已经没有它的话。一些myt代码的示例如下。
String Friends = Dave.get(friends);
String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
FileWriter fw = new FileWriter(file,true);
BufferedWriter bw = new BufferedWriter(fw);
如果声明在这里查看Dave的朋友是否已经在.txt文件中
bw.write(Friends);
bw.newLine();
bw.close();
基本上我想知道如何检查.txt文件的值。
.txt文件的格式如下:
Jake
Mike
Fred
答案 0 :(得分:3)
您必须检查哪些朋友不在文本文件中,因此请抓住它们并将其放入列表中:
String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
BufferedReader in = new BufferedReader(new FileReader(file));
String str;
List<String> friendsInFile = new ArrayList<String>();
while((str = in.readLine()) != null){
friendsInFile.add(str);
}
您可以使用Apache Commons IO
实现相同目标String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
List<String> friendsInFile = IOUtils.readLines(new FileInputStream(file));
然后你可以用List.contains()
方法制作你的if,迭过Dave的朋友List
for (String friend : dave.getFriends()) {
if (!friendsInFile.contains(friend)) {
// add the friend to the file
}
}
答案 1 :(得分:1)
您可以使用split()或者您可以尝试将整个文件作为字符串读取并检查字符串中是否存在名称的天气(您也可以尝试循环遍历名称并逐个检查它们)。如果给定的名称不存在,您可以尝试将其写入文件。
只是一个样本算法
希望这会有所帮助:)
答案 2 :(得分:1)
您可以使用没有重复项的容器Set。每当你读到一个名字就会把它介绍给它。稍后将整个Set写入文本文件。不会出现重复项。
希望这对你有所帮助! :)