【发布时间】:2013-09-16 21:40:35
【问题描述】:
目前,我正在学习如何使用 Java 编程作为一种爱好。我在 NetBeans 中进行了大量阅读和练习,但我没有接受过任何正式培训。所以,如果我犯了菜鸟的错误,请记住这一点。
好的,所以,我得到了如何用 Java 读取文件的代码。我在网上和这里都看到过同样的代码;我不会打扰你们的。 :)
现在,就像我说的那样,我已经做了很多阅读和研究,我知道给我的代码是垃圾。 (如果你想知道我得到了什么,包被称为“textfiles”,类被称为“FileData”和“ReadFile”,“readFile”和“OpenFile”作为“ReadFile”类下的方法。听起来很熟悉?) 不管怎样,我厌倦了,写了我自己的。现在,我的日子有点难过。我做错了什么?
这是我的主要课程:
package javaclass;
import java.io.IOException;
public class JavaClass{
public static void main(String[] args) throws IOException {
String file_name = "C:/users/Admin/test.txt";
try {
Reader rdr = new Reader(file_name);
System.out.println(rdr.OpenFile());
}
catch (IOException e) {
}
}
}
这是我打开和阅读文件的课程:
package javaclass;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
public class Reader extends JavaClass{
private String path;
public Reader(String file_name) throws IOException {
String file = path;
}
public String OpenFile() throws IOException {
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
String line = null;
ArrayList<String> list = new ArrayList<>();
while ((br.readLine()) !=null) {
list.add(line);
}
return list.toString();
}
}
这是我编译时得到的:
Exception in thread "main" java.lang.NullPointerException
at java.io.FileInputStream.<init>(FileInputStream.java:134)
at java.io.FileInputStream.<init>(FileInputStream.java:97)
at java.io.FileReader.<init>(FileReader.java:58)
at javaclass.Reader.OpenFile(Reader.java:17)
at javaclass.JavaClass.main(JavaClass.java:12)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
我一直在绞尽脑汁想弄清楚这一点。我已经查看了例外情况。 Reader.java:17 指“FileReader fr = new FileReader(path);”而 JavaClass.java:12 指的是“System.out.println(rdr.OpenFile());”。
感谢您的宝贵时间和建议。 :)
【问题讨论】:
-
提示:
path是null。 -
在 Windows 上,您需要对文件路径使用反斜杠:
"C:\users\Admin\test.txt"。您使用的是 Unix/Linux 约定。 -
另外,Java 中的变量名通常是驼峰式,所以
file_name应该是fileName。这不是必需的,但这是一种很好的做法。 -
@Hassan, / 将在 Java 中的 Windows 上工作。
-
@developerwjk 我不知道,谢谢。
标签: java readfile filereader