gpt4 book ai didi

java - 读取文本文件并将其存储在数组列表中时出现空指针错误

转载 作者:行者123 更新时间:2023-12-01 23:23:23 25 4
gpt4 key购买 nike

我也为其编写了一个主要方法,但我无法说出错误的根源。这是我正在使用的代码:

import java.io.*;
import java.util.*;
public class WordList{
private ArrayList<String> words;

public WordList(String filename){
ArrayList<String> words = new ArrayList<String>();
}

public ArrayList<String> openFile(String filename) throws IOException{
FileReader fr= new FileReader(filename);
//create a Filereader object
BufferedReader textReader= new BufferedReader(fr);
//create a BR object
String line = textReader.readLine();
while (textReader.readLine() != null){
words.add(line);
textReader.readLine();
}
textReader.close();
return words;
}
Random r= new Random();
public String getRandomWord(){
String x= new String();
int y=r.nextInt(words.size());
x= words.get(y);
return x;

}
}

这是我用于测试代码的主要方法:

import java.io.*;
import java.util.*;
public class Test{
public void main(String args[])throws IOException{
String path= "C:/Users/Cyril/Desktop/COMP 202/Assignment 4/Text files/Majors.txt" ;

try {
WordList list = new WordList(path);
ArrayList<String> majors = new ArrayList<String>();
majors = list.openFile(path);
System.out.println(majors);
}

catch (IOException e){
System.out.println( e.getMessage());
}
}
}

我收到空指针错误。我找不到它的来源。我的问题是:

使用私有(private)数组列表编写一个 WordList 类,该类读取文本文件并将每一行存储为数组列表中的条目。我添加了 random 方法来从数组列表中生成随机单词。

最佳答案

您已经声明了一个隐藏实例成员的局部变量

public WordList(String filename){
ArrayList<String> words = new ArrayList<String>();
}

更改为

public WordList(String filename){
words = new ArrayList<String>();
}

But also see Kugathasan's answer...which they just deleted.

这段代码

String line = textReader.readLine();
while (textReader.readLine() != null){
words.add(line);
textReader.readLine();
}

您正在从输入流中读取 3 行。这就是你想要的吗?

关于java - 读取文本文件并将其存储在数组列表中时出现空指针错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20359811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com