在Java中解析文本文件-需要了解NullPointerException的帮助吗
我是Java新手,很难理解扫描器和异常。它在“while(!line.matches([\n\r]+”)处显示NullPointerException。我真的不知道为什么会这样。我已经初始化了line变量,并且假设如果扫描器的下一行是断线,那么while循环应该结束。如果下一行为空,则整个外部循环应结束。为什么会返回NullPointerException在Java中解析文本文件-需要了解NullPointerException的帮助吗,java,nullpointerexception,text-files,Java,Nullpointerexception,Text Files,我是Java新手,很难理解扫描器和异常。它在“while(!line.matches([\n\r]+”)处显示NullPointerException。我真的不知道为什么会这样。我已经初始化了line变量,并且假设如果扫描器的下一行是断线,那么while循环应该结束。如果下一行为空,则整个外部循环应结束。为什么会返回NullPointerException public class Readfile { private static int inputs = 0; public void ma
public class Readfile {
private static int inputs = 0;
public void main(String filename) throws Exception {
URL url = getClass().getResource(filename);
File file = new File(url.getPath());
parsefile(file);
}
void parsefile(File file) throws Exception {
ArrayList<String[]> Inputs = new ArrayList<String[]>();
BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while (line != null){
LinkedList currentinput = new LinkedList();
if (line.contains("Input")){
while (! line.matches("[\\n\\r]+")) {
System.out.println(line);
line = br.readLine();
}
}else{
line = br.readLine();
}
}
}
公共类读取文件{
专用静态int输入=0;
public void main(字符串文件名)引发异常{
URL=getClass().getResource(文件名);
File File=新文件(url.getPath());
解析文件(file);
}
void parsefile(文件文件)引发异常{
ArrayList输入=新的ArrayList();
BufferedReader br=新的BufferedReader(新文件读取器(文件));
String line=br.readLine();
while(行!=null){
LinkedList currentinput=新建LinkedList();
如果(第行包含(“输入”)){
而(!line.matches(“[\\n\\r]+”){
系统输出打印项次(行);
line=br.readLine();
}
}否则{
line=br.readLine();
}
}
}
}您的内部循环还调用
br.readLine()
,因此需要检查null
。改变
while (! line.matches("[\\n\\r]+")) {
差不多
while (line != null && ! line.matches("[\\n\\r]+")) {
或
while (! line.matches("[\\n\\r]+")) {
System.out.println(line);
line = br.readLine();
if (line == null) {
break;
}
}
内部循环还调用
br.readLine()
,因此需要检查null
。改变
while (! line.matches("[\\n\\r]+")) {
差不多
while (line != null && ! line.matches("[\\n\\r]+")) {
或
while (! line.matches("[\\n\\r]+")) {
System.out.println(line);
line = br.readLine();
if (line == null) {
break;
}
}