Java BufferedReader文件路径问题

时间:2016-10-19 14:26:12

标签: java bufferedreader filereader

我正在尝试使用文本文件填充游戏板的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...

3 个答案:

答案 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();
}