JAVA文件流中Read()函数的问题
packageJAVA;importjava.io.*;publicclassTextFileReaderLine{Stringfilename;FileReaderfw...
package JAVA;import java.io.*;public class TextFileReaderLine{ String filename; FileReader fw; public TextFileReaderLine(String f) { filename = f; try { fw = new FileReader(new File(f)); } catch(IOException e) {} } public void readLine() { char ch = '\u0000'; try { while(ch != -1) { ch = (char)fw.read(); System.out.print(ch); } } catch(IOException e) { System.out.print("Error!"); } }public static void main(String args[]){ TextFileReaderLine frs = new TextFileReaderLine("text1.txt"); frs.readLine();}}提示的错误:Exception in thread "main" java.lang.NullPointerException at JAVA.TextFileReaderLine.readLine(TextFileReaderLine.java:25) at JAVA.TextFileReaderLine.main(TextFileReaderLine.java:37)就是Read()函数与ReadLine()函数的调用问题,其实质是未实例化的调用,但是怎么修改呢?还是因为其他的错误呢??O(∩_∩)O谢谢!
展开
4个回答
展开全部
你好,你有一个异常处理,没有写打印路径,所以从你的结果很难看出问题出在哪里,我帮你改正确后发现是系统找不到指定文件text1.txt。所以解决办法是:
TextFileReaderLine frs = new TextFileReaderLine("d:\\text1.txt") ;//写全路径
但是在测试程序的时候,还发现一个错误,就是你的读方法写的也不正确。修改好的程序是这样的,你对比着学习一下。
import java.io.*;
public class TextFileReaderLine {
String filename;
FileReader fw;
public TextFileReaderLine(String f) {
filename = f;
try {
fw = new FileReader(new File(f));
} catch (IOException e) {
e.printStackTrace();
}
}
public void readLine() {
char ch = '\u0000';
int temp = 0 ;
try {
while ((temp = fw.read()) != -1) {
ch = (char) temp;
System.out.print(ch);
}
fw.close() ; //记得要关闭
} catch (IOException e) {
System.out.print("Error!");
}
}
public static void main(String args[]) {
TextFileReaderLine frs = new TextFileReaderLine("d:\\text1.txt");
frs.readLine();
}
}
TextFileReaderLine frs = new TextFileReaderLine("d:\\text1.txt") ;//写全路径
但是在测试程序的时候,还发现一个错误,就是你的读方法写的也不正确。修改好的程序是这样的,你对比着学习一下。
import java.io.*;
public class TextFileReaderLine {
String filename;
FileReader fw;
public TextFileReaderLine(String f) {
filename = f;
try {
fw = new FileReader(new File(f));
} catch (IOException e) {
e.printStackTrace();
}
}
public void readLine() {
char ch = '\u0000';
int temp = 0 ;
try {
while ((temp = fw.read()) != -1) {
ch = (char) temp;
System.out.print(ch);
}
fw.close() ; //记得要关闭
} catch (IOException e) {
System.out.print("Error!");
}
}
public static void main(String args[]) {
TextFileReaderLine frs = new TextFileReaderLine("d:\\text1.txt");
frs.readLine();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询