Java 空指针错误:Can';找不到原因
在控制台中: 线程“main”java.lang.NullPointerException中出现异常 位于SimulatedReality.main(SimulatedReality.java:25) 第25行是“BecomesArray=ReadsLine.toCharArray();” 在我的代码中,我试图读取一个文件并检查其所有字符(或至少前十个字符),以查看是否有值为1的字符。我试图这样做是为了在使用一次文档后重置文档的文本。代码的问题是有一个空指针错误,这是由声明问题引起的(或者,至少,我听说是这样)。我找不到这个错误在哪里。无论谁帮助我,请谢谢你。我是一个初学者,所以如果过于简化,说明将是最好的 文件SRFile=新文件(“C:/Users/ThinkingBeing/Documents/SRFile.txt”)Java 空指针错误:Can';找不到原因,java,Java,在控制台中: 线程“main”java.lang.NullPointerException中出现异常 位于SimulatedReality.main(SimulatedReality.java:25) 第25行是“BecomesArray=ReadsLine.toCharArray();” 在我的代码中,我试图读取一个文件并检查其所有字符(或至少前十个字符),以查看是否有值为1的字符。我试图这样做是为了在使用一次文档后重置文档的文本。代码的问题是有一个空指针错误,这是由声明问题引起的(或者,至少
SRFileWriter=new
FileWriter(“C:/Users/ThinkingBeing/Documents/SRFile.txt”);
如果(!SRFile.exists()){
SRFile.createNewFile();
SRFileWriter.write(“000000”);
System.out.println(“文件现在存在”);
}否则{
对于(inti=0;i几个可能的问题
您的文件可能少于10行
然后readLine将返回null,下一行将失败
此外,在开始读取文件之前,可能还应该确保文件存在
if(!SRFile.exists()||BasicChar=='1'){
最后,我不能完全理解您仅仅通过阅读代码来实现的目标。但是逻辑上肯定有问题。我觉得奇怪的是,BasicChar
是每行第I行的第I个字符。我想我发现了您的问题(请遵循Java命名约定)
SRFileReader=new BufferedReader(new FileReader(SRFile));/…而您的异常发生在…?请发布异常的前三行或四行。此外,它是一个单独的“/”作为路径分隔符。因此,“C:/Users/ThinkingBeing/Documents/SRFile.txt”注意:这可能不是您的错误。另外SRFileReader=new BufferedReader(new FileReader(SRFile));
将读取第一行10次。您的代码段长度不足25行,请指出哪一行是第25btw行:main不擅长抛出!它已更新;答案在那里。它如何转到下一行?我只是试图让它读取继续的字符。我刚刚更新了代码,但问题仍然存在。我我已经写在上面了。
ReadsLine = SRFileReader.readLine();
BecomesArray = ReadsLine.toCharArray();
if(!SRFile.exists()||BasicChar=='1'){
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();