【发布时间】:2020-11-08 22:55:39
【问题描述】:
我有一组单词和一个外部文件。 我想检查集合中的单词是否已经存在于外部文件中。如果单词已经在文件中,则什么也不做,如果单词不在外部文件中,则将其添加到外部文件中。 这是我写的代码:
public static void toFile(Set<String> vocab, String filename)
{
try
{
for(String vocabWord : vocab)
{
File file = new File(filename);
Scanner sc2 = new Scanner(file);
while(sc2.hasNextLine())
{
String docWord = sc2.nextLine();
if (!(vocabWord.equals(docWord)))
{
FileWriter myWriter = new FileWriter(filename, true);
PrintWriter printWriter = new PrintWriter(myWriter);
printWriter.println(vocabWord);
printWriter.close();
}
else
break;
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
我正在使用三个不同的文本文档来测试它,分别是“测试文件一”、“测试文件二”和“测试文件三”。 我期待的输出是:“测试文件三”(它与停止列表连接,其中一和二是其中的一部分,并且一直在工作) 但是,当我运行它时,无论是只有一个文件还是三个文件都连续运行,文件总是空的。 我尝试在该方法中进行更改,但没有任何效果,我要么得到一个无限循环,要么在外部文件中什么也没有。 我不确定我错过了什么......我非常感谢任何帮助。
【问题讨论】: