[英]Null Pointer Error: Can't Find Declaration Cause
在控制台中:
SimulatedReality.main(SimulatedReality.java:25)处的线程“主”中的异常java.lang.NullPointerException
第25行是“ BecomesArray = ReadsLine.toCharArray();”。
在我的代码中,我试图读取一个文件并检查其所有字符(或至少对于前十个字符),以查看是否有任何一个值。 我试图这样做一次以重置文档的文本。 该代码的问题是存在一个空指针错误,该错误是由声明问题(或者至少是我所听到的)引起的。 我找不到此错误在哪里。 请并感谢您为我提供帮助的任何人。 我是一个初学者,因此,如果过于简化,解释将是最好的。
文件SRFile =新文件(“ C:/Users/ThinkingBeing/Documents/SRFile.txt”);
SRFileWriter = new
FileWriter("C:/Users/ThinkingBeing/Documents/SRFile.txt");
if(!SRFile.exists()){
SRFile.createNewFile();
SRFileWriter.write("000000");
System.out.println("File now exists.");
} else {
for(int i=0;i<=5;i++){
SRFileReader = new BufferedReader(new FileReader(SRFile));
ReadsLine = SRFileReader.readLine();
BecomesArray = ReadsLine.toCharArray();
BasicChar = BecomesArray[i];
if(BasicChar!='0'){
SRFileWriter.write("000000");
System.out.println("File Off Of Counter. Counter Fixed.");
}
}
SRFileWriter.close();
SRFileReader.close();
}
我想我找到了您的问题(请遵循Java命名约定)。
SRFileReader = new BufferedReader(new FileReader(SRFile)); // <-- file reader once
ReadsLine = SRFileReader.readLine();
BecomesArray = ReadsLine.toCharArray();
FileWriter SRFileWriter = new FileWriter
("C:/Users/ThinkingBeing/Documents/SRFile.OUT.txt"); // <-- Don't write to
// your input file while you're reading it.
for(int i=0;i<(BecomesArray != null) ? BecomesArray.length : 0;i++){
// SRFileReader = new BufferedReader(new FileReader(SRFile));
BasicChar = BecomesArray[i];
if(!SRFile.exists()||BasicChar=='1'){
// SRFile.createNewFile(); // <-- Would clear your input file.
SRFileWriter.write("00BOOYTA"); // <-- which was also your output file.
}
}
SRFileWriter.close();
SRFileReader.close();
几个可能的问题...
您的文件可能少于10行。
然后readLine将返回null,下一行将失败。 这里的文件
ReadsLine = SRFileReader.readLine();
BecomesArray = ReadsLine.toCharArray();
另外,您可能应该在开始读取文件之前确保文件存在。
if(!SRFile.exists()||BasicChar=='1'){
最后,仅通过阅读代码我就无法完全确定您要实现的目标。 但是,逻辑上肯定有一些不足。 我觉得奇怪的是, BasicChar
是每行第i行的第i个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.