【发布时间】:2018-02-14 10:22:37
【问题描述】:
我有一个这样的方法 readFromFile:
private static ArrayList<ArrayList<Integer>> readFromFile(String name) {
ArrayList<ArrayList<Integer>> inputs = new ArrayList<ArrayList<Integer>>();
try {
InputStream in = ReadWriteFile.class.getClass().getResourceAsStream(name);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
ArrayList<Integer> input = new ArrayList<Integer>();
for (int i=0; i<line.length(); i++) {
int value = 0;
try {
value = Integer.parseInt(String.valueOf(line.charAt(i)));
} catch (Exception e) {
input.add(value);
}
inputs.add(input);
}
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return inputs;
}
我在这里使用这个方法来读取一个txt文件的文件夹。我需要将文件名放入数组列表中(文件是字母表):
public static ArrayList<TrainingSet> readTrainingSets() {
ArrayList<TrainingSet> trainingSets = new ArrayList<TrainingSet>();
for (int i=0; i<26; i++) {
char letterValue = (char) (i+26);
String letter = String.valueOf(letterValue);
for (ArrayList<Integer> list : readFromFile("C:\\Users\\hp\\Desktop\\resources\\" + letter + ".txt")) {
trainingSets.add(new TrainingSet(list, GoodOutputs.getInstance().getGoodOutput(letter)));
}
}
return trainingSets;
}
源文件夹包括以下文件:A.txt、B.txt 等。当我尝试运行代码时出现错误。
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at data.ReadWriteFile.readFromFile(ReadWriteFile.java:34)
at data.ReadWriteFile.readTrainingSets(ReadWriteFile.java:22)
at network.Train.<init>(Train.java:16)
at gui.MainGui.<init>(MainGui.java:38)
at gui.MainGui.main(MainGui.java:32)
我猜该方法在我的计算机上找不到文件。但我不知道为什么。表格错了吗?你能帮帮我吗?
【问题讨论】:
-
请阅读 getResourceAsStream 方法的java文档,其中提到如下“查找具有给定名称的资源。搜索与给定类关联的资源的规则由定义类加载器实现类。此方法委托给此对象的类加载器。如果此对象由引导类加载器加载,则该方法委托给 ClassLoader.getSystemResourceAsStream。"
标签: java nullpointerexception inputstream