Java BufferedReader文件路径问题
我正在尝试使用文本文件来填充游戏板的2D数组。但我似乎无法让读者真正阅读文件。我不断得到以下错误: 无法在线程“main”java.lang.NullPointerException中打开文件“C://git/cse116f16/src/boardpieces/board.txt”异常 我知道这是因为我没有为文件路径使用正确的语法,但我一辈子都不知道应该是什么。我把它存储在Java BufferedReader文件路径问题,java,bufferedreader,filereader,Java,Bufferedreader,Filereader,我正在尝试使用文本文件来填充游戏板的2D数组。但我似乎无法让读者真正阅读文件。我不断得到以下错误: 无法在线程“main”java.lang.NullPointerException中打开文件“C://git/cse116f16/src/boardpieces/board.txt”异常 我知道这是因为我没有为文件路径使用正确的语法,但我一辈子都不知道应该是什么。我把它存储在C:\Users\myname\git\cse116f16\src\boardpieces\board.txt 要读取此文件
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...
公共字符[][]populateArray(字符串文件名){
字符串行=null;
字符[][]retVal=新字符[26][28];
int lineNum=0;
试一试{
FileReader FileReader=新的FileReader(文件名);
BufferedReader BufferedReader=新的BufferedReader(文件阅读器);
//将每个字符指定给其在数组中的对应位置
而((line=bufferedReader.readLine())!=null){
对于(int i=0;i<26;i++){
retVal[lineNum][i]=行字符(i);
}
}
bufferedReader.close();
}
捕获(FileNotFoundException ex){
System.out.println(“无法打开文件“”+fileName+”);
}
捕获(IOEX异常){
System.out.println(“读取文件“+”文件名“+”时出错”);
}
返回返回;
}
公众委员会{
String path=“C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt”;
字符[][]arr=populateArray(路径);
//方法的其余部分。。。
试试这个:
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将其作为转义字符读取,因此通过添加另一个转义字符,实际上只需写斜杠。)
然后尝试打开文件
,然后将其传递给文件读取器
,请重试
final File file =
new File("C:\\Users\\myname\\git\\cse116f16\\src\\boardpieces\\board.txt");
final FileReader fileReader = new FileReader(file);
通过在代码前面添加四个空格,尝试将其显示为代码。您可以通过编写\\\\Bryan而不是\\\\Bryan来执行此操作。问题是您正在执行
新文件读取器(文件名)
,您应该执行新文件读取器(新文件名))
@Bryan您是否记得将myname
更改为您的用户名?@Bryan我建议您转到实际文件位置,单击copy path
,然后使用IDE、记事本++或任何其他编辑器,将所有\替换为/(我就是这么做的)。我不清楚这里需要什么\\而不是\,我只能用一个斜杠,你能分享你文件的内容以提供更好的答案吗
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();
}