在java中读取和添加文本文件
我正在寻找以下问题的解决方案。我正在创建一个.txt文件,然后向其中添加值。我正在运行一个循环,不希望在txt文件中重复相同的值。因此,基本上我需要一个在java中读取和添加文本文件,java,file,text,Java,File,Text,我正在寻找以下问题的解决方案。我正在创建一个.txt文件,然后向其中添加值。我正在运行一个循环,不希望在txt文件中重复相同的值。因此,基本上我需要一个IF语句,它读取.txt文件并检查值,然后在.txt文件中没有值的情况下将值添加到.txt文件中。下面是一些myt代码的示例 String Friends = Dave.get(friends); String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt"; FileW
IF语句
,它读取.txt文件并检查值,然后在.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文件中
所以基本上我想知道如何检查.txt文件中的值
.txt文件的格式如下所示:
Jake
Mike
Fred
您可以使用split()或尝试将整个文件作为字符串读取,并检查字符串中是否存在名称(您也可以尝试循环名称并逐个检查)。如果给定的名称不存在,您可以尝试将其写入文件
只是一个示例算法
希望这有帮助:)您必须检查哪些朋友不在文本文件中,因此捕获他们并将其放入列表中:
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);
}
您必须检查哪些朋友不在文本文件中,因此捕获他们并将其放入列表:
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);
}
您可以使用没有重复项的容器。每次你读到一个名字,就把它介绍给观众。稍后将整个集合写入文本文件。不会出现重复项
希望这对你有帮助!:) 您可以使用没有重复项的容器。每次你读到一个名字,就把它介绍给观众。稍后将整个集合写入文本文件。不会出现重复项
希望这对你有帮助!:) txt文件中朋友的格式是什么?@jordiCastilla它的格式类似于:jake(newline)fred(newline)…等等。评论不会让你写一行新词,但你得到了你看过的想法,然后呢?请注意,您无法为当前正在写入的文件打开文件读取器,因此您应该先读取该文件,关闭它,然后重新打开它进行写入。@AlexanderWeiner我已经研究过它们,但不确定如何在这个实例中使用它们。这是txt文件中的friends格式?@jordiCastilla它的格式类似于:jake(newline)弗雷德(新线)…等等。评论不会让你写一行新词,但你得到了你看过的想法,然后呢?请注意,您无法为当前正在写入的文件打开文件读取器,因此您应该先读取该文件,关闭它,然后重新打开它进行写入。@alexanderWeinert我已经研究过它们,但不确定如何在本例中使用它们“每次读取名称时,检查它是否已在集合中(包含(对象o))如果返回false,则将其引入集合。“。。。那么,如果他想在
集合中使用该名称,为什么要先检查?他可以简单地添加它。是的,它是正确的。对不起,只需将读取的名称添加到set,然后将整个集合写入文本文件。我将编辑答案。“每次你阅读一个名称检查它是否已经在集合中(包含(对象o)),如果返回false,则将其引入集合。”。。。那么,如果他想在集合中使用该名称,为什么要先检查?他可以简单地添加它。是的,它是正确的。对不起,只需将读取的名称添加到set,然后将整个集合写入文本文件。我将编辑答案。很高兴听到@Grbe1l;)很高兴听到@Grbe1l;)
String file = "C:/Users/george.bell/Desktop/Failed2/failedraces.txt";
List<String> friendsInFile = IOUtils.readLines(new FileInputStream(file));
for (String friend : dave.getFriends()) {
if (!friendsInFile.contains(friend)) {
// add the friend to the file
}
}