我正在寻找以下问题的解决方案。我正在创建一个。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);
If语句到这里查看Dave的朋友是否已经在。txt文件
bw.write(Friends);
bw.newLine();
bw.close();
所以我想知道如何检查。txt文件的值
.txt文件格式如下:
Jake
Mike
Fred
你必须检查哪些朋友不在文本文件中,所以抓住他们并放入列表:
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
}
}
您可以使用split()或者您可以尝试将整个文件作为字符串读取并检查字符串中是否存在名称(您也可以尝试遍历名称并逐个检查它们)。如果给定的名称不存在,您可以尝试将其写入文件。
只是一个示例算法
- 以字符串形式读取完整文件。
- 检查字符串是否包含值
- 如果该值存在,不执行任何操作,
- 如果value不存在,尝试用该名称附加文件。
希望这对你有帮助
可以使用没有重复项的容器。每次你读到一个名字,就把它介绍给大家。稍后将整个Set写入文本文件。不会出现重复项。
希望这对你有帮助!:)