java split 出现空指针异常

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:58:41
import java.io.*;
public class MoveFile
{
public static void main(String[] args) throws
FileNotFoundException,IOException
{
FileReader inData =new FileReader (args[0]);
BufferedReader inFile = new BufferedReader (inData);
FileWriter outData = new FileWriter (args[1]);
PrintWriter outFile = new PrintWriter (outData);
String[] s = new String[200000];

for(int i=0;i<s.length;i++){
s[i] = inFile.readLine();
String[] errname = s[i].split(" ");
for(int j=0;j<errname.length;j++){System.out.println(errname[j]);
outFile.println("move"+" "+errname[j]+" "+args[2]);
}
}
inFile.close();
outFile.close();
System.out.println("批处理文件已经生成");
}
}

//String[] errname = s.split();
//这行出现空指针异常,我在网上找了许多关于split的例子,结果都是空指针异常,我就纳闷了,别人

因为文件没有那么长(200000行),
s[i] = inFile.readLine(); 这里返回了Null,所以后面s[i].split就报空指针了。

在出错的语句的前面加一名:
if(s[i] == null) break;

s数组中有null值,所以空指针,readline()方法当文件读到末尾时返回null,然后你的循环循环到这个null.split(" ")时就空指针了

split这个方法要传参数的!比如abcdefabce 你split("a") 以a为分割线!

文件读到末尾了,返回是空,所以出现空指针异常