Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BufferedReader文件路径问题_Java_Bufferedreader_Filereader - Fatal编程技术网

Java BufferedReader文件路径问题

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 要读取此文件

我正在尝试使用文本文件来填充游戏板的2D数组。但我似乎无法让读者真正阅读文件。我不断得到以下错误:

无法在线程“main”java.lang.NullPointerException中打开文件“C://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();
}