我正在尝试使用文本文件填充游戏板的2D数组。我似乎无法让读者真正阅读该文件。我一直收到以下错误:
“无法打开文件'C://git/cse116f16/src/boardpieces/board.txt'exception in thread”main“java.lang.NullPointerException”。
我知道这是因为我没有使用正确的文件路径语法,但我不能为我的生活找出应该是什么。我把它存储在C:\Users\myname\git\cse116f16\src\boardpieces\board.txt
。
我需要传递给FileReader以读取此文件的字符串是什么?
编辑:这是方法,也许问题不是我认为的。
另外应该注意这是在git存储库中,所以我需要确保所有人都可以阅读它。
public Character[][] populateArray(String fileName){
String line = null;
Character[][] retVal = new Character[26][28];
int lineNum = 0;
try {
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
//Assigns each character to it's corresponding place in the array
while((line = bufferedReader.readLine()) != null) {
for (int i = 0; i < 26; i++){
retVal[lineNum][i] = line.charAt(i);
}
}
bufferedReader.close();
}
catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + fileName + "'");
}
catch(IOException ex) {
System.out.println("Error reading file '" + fileName + "'");
}
return retVal;
}
public void populateBoard(){
String path = "C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt";
Character[][] arr = populateArray(path);
//the rest of the method...
答案 0 :(得分:0)
试试这个:
String fileName = "C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt";
//or "C:/Users/myname/git/cse116f16/src/boardpieces/board.txt"
File file = new File(fileName);
FileReader fileReader = new FileReader(file);
斜杠必须与\\
或/
类似。
(\
和/
都有效,但由于\
是一个转义字符,因此java将\
作为转义字符读取,所以通过添加另一个转义字符基本上只写斜线。)
然后,您尝试打开File
,然后将其传递给FileReader
答案 1 :(得分:0)
请尝试
final File file =
new File("C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt");
final FileReader fileReader = new FileReader(file);
答案 2 :(得分:0)
File myFile = new File("C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt");
BufferedReader reader = new BufferedReader(new FileReader(myFile));
String text;
while (reader.hasNextLine()){
text += reader.nextLine();
}