运行我的Java程序时遇到java.lang.NullPointerException错误,读完后我想我明白错误的含义,但我仍然不确定如何解决它。从文件读取时出现NullPointerException
import java.util.ArrayList;
import java.io.FileInputStream;
import java.io.DataInputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;
public class readFile {
public static ArrayList<String> pullFirst(String fileName) throws IOException{
String filen = "C:\\Users\\Steven\\Desktop\\Tests\\wunderground\\outputTweetsWeather.txt";
ArrayList<String> arl = new ArrayList<String>(); // java 6 ArrayList
FileInputStream fs = new FileInputStream(filen); // this is how you access a file in java
DataInputStream din = new DataInputStream(fs);
BufferedReader bin = new BufferedReader(new InputStreamReader(din));
String line;
while(!(line = bin.readLine()).startsWith("String index out of range")){ // read each line in the file while they exist
arl.add(line); // add them to the array list
}
return arl; // return the array list
}
public static void main(String[] args, int j) {
// this is just demo code to prove it works so you can check the output.
try{
ArrayList<String> rVal = pullFirst("testFile.txt");
for(String a : rVal){
//System.out.println(a + "\n"); // insert write to file code here
if(a.startsWith("+t")){
// System.out.println(a);
}
}
int i = 36;
PrintStream out5 = new PrintStream(new FileOutputStream("forpopUp1.txt", true));
System.setOut(out5);
System.out.println(rVal.get(2 + j*i)); // Display Value
}catch(Exception e){
System.out.print("Problem in readFile" + e);
}
}
}
现在,我不知道这是否是一个事实,即我的主线是
public static void main(String[] args, int j) {
但是,据我所知我必须这样说,因为做这个类是被跑从另一个类的if条件之后执行,使用线路
readFile.main(args, counterForreadFile);
这是堆栈跟踪的结果:
java.lang.NullPointerException
at readFile.pullFirst(readFile.java:22)
at readFile.main(readFile.java:33)
任何帮助,将不胜感激!
请添加完整的堆栈跟踪 – amit
我怀疑问题是当文件结束时,''BufferedReader'返回'null'时,并且'while'循环中的条件调用'''字符串“,然后会导致NPE。我不能确定,直到你提供堆栈跟踪 – amit
如何获得堆栈跟踪? – Steve