首页 > 解决方案 > 检查外部文件是否有某个单词,如果没有,则添加它 Java

问题描述

我正在编写一个类,我必须将单词添加到外部文件中,前提是它们尚未出现在文件中。这是我必须在文件中写出单词的方法的代码,但是当我运行它时,它进入一个循环并且只连续打印一个单词:

public static void toDataFile(String word, String filename)
    {   
        try {
            File file = new File(filename);   
            Scanner sc2 = new Scanner(file);      
    
            while (sc2.hasNextLine())          
            {
                String w = sc2.nextLine();
                
                if(!(word.equals(w)))
                {
                    FileWriter myWriter = new FileWriter(filename, true);
                    PrintWriter printWriter = new PrintWriter(myWriter);
                
                    printWriter.println(word);
                    printWriter.close();
                }
            } 
        }
        catch(IOException e) {
            e.printStackTrace();
        }
}

这是我用来测试它的三个数据文件

文件一:我的测试文件一

文件2:我的测试文件二

文件3:我的测试文件三

这是该方法的结果:测试...

它应该有:测试文件三

编辑:我切换了变量 w 和 word,现在输出仍然是一个循环,现在执行它的“测试文件测试文件 ...”

标签: javastringfileiofile-writing

解决方案


问题在于这一行:

printWriter.println(word);

因为您总是打印相同的单词。尝试用变量“w”替换它,它应该可以工作。


推荐阅读