現在、趣味でJavaのプログラミングを学んでいます。私は NetBeans について多くのことを読んだり練習したりしましたが、この問題に関する正式なトレーニングは受けていません。ですから、初歩的なミスを犯した場合は、そのことを覚えておいてください。
さて、Java でファイルを読み取る方法のコードが与えられました。私は、これと同じコードがウェブ全体やここに散らばっているのを見てきました。私はそれを気にしません。:)
今、私が言ったように、私はかなりの量の読書と研究を行ってきましたが、与えられたコードががらくたであることを知っています. (私が何を与えられたか疑問に思っている方のために説明すると、パッケージは "textfiles" と呼ばれ、クラスは "FileData" & "ReadFile" と呼ばれ、"ReadFile" クラスの下のメソッドとして "readFile" と "OpenFile" が付けられていました。 ?) とにかく、私はそれにうんざりして、自分で書きました。今、私は少し苦労しています。私は何を間違っていますか?
ここに私のメインクラスがあります:
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());」を参照します。
お時間とアドバイスをありがとうございました。:)