从文件中读取的单词为空

时间:2015-10-12 12:29:31

标签: java file

我试图读取文件“words.txt”中的一些单词,然后在运行时在程序的其他类中使用它们。这是我在互联网上找到的,它似乎没有正常工作。

public static List<String> wordsList;


public static void refreshWords(){
    String fileName = "words.txt";

    String line = null;

    try {
        FileReader fileReader = 
            new FileReader(fileName);

        BufferedReader bufferedReader = 
            new BufferedReader(fileReader);

        while((line = bufferedReader.readLine()) != null) {
            for(String tempWord : line.split(" ")){
                wordsList.add(tempWord);
            }
        }   

        bufferedReader.close();         
    }
    catch(FileNotFoundException ex) {
        System.out.println(
            "Unable to open file '" + 
            fileName + "'");                
    }
    catch(IOException ex) {
        System.out.println(
            "Error reading file '" 
            + fileName + "'");
    }

}

public static List<String> getListOfWords(){
    return wordsList;
}

我,从程序运行之前显示的消息,取消整个事情,可以确定错误是由于将tempWord添加到wordsList而引发的。我认为tempWord是null,但我似乎无法找到原因。

我在文件中的所有内容都是一堆随机的单词,我想到了这个单词,格式如下:

这场比赛乌龟森林足球球java列表恼火

1 个答案:

答案 0 :(得分:0)

你正在使用的是旧方法(在Java 7之前)。 使用Java 7/8,读取文件要容易得多。因此,我不是寻找错误,而是使用新的API重写它:

List<String> lines = Files.readAllLines(yourFile.toPath(), StandardCharsets.UTF_8);

请参阅Files.readAllLines(Path, Charset)

此外,在您的问题中,您将线条分为单词。这非常不寻常,单词列表几乎总是每行一个单词。