java.io.FileNotFoundException:Joiners.txt(拒绝访问)

时间:2018-02-22 12:14:41

标签: java filereader access-denied

这是我的问题。路径为true,错误为拒绝访问。  我尝试了其他解决方案,但它们都不适合我。

//this is my arraylist which i give value from the txt
       ArrayList<Person> PersonArrayList = new ArrayList<Person>();     
        FileReader inFile = new 
        FileReader("C:\\Users\\canertasan\\Desktop");
        //this is my path but access denied is problem?
        BufferedReader inStream = new BufferedReader(inFile);
        String InstaNameText;
        while ((InstaNameText = inStream.readLine()) != null) {
             PersonData.add(new Person(InstaNameText));
        inStream.close();
    } 

2 个答案:

答案 0 :(得分:1)

桌面不是文件,它是一个文件夹 FileReader应该被赋予文件名作为参数

String filename = "C:\\Users\\UserName\\Desktop\\Joiners.txt"; //Fullpath txt file
String currentLine; //Current line
FileReader fr = null;
BufferedReader br = null;

try {
    fr = new FileReader(filename);
    br = new BufferedReader(fr);


    while((currentLine = br.readLine()) != null){
        System.out.println(currentLine);
    }
}
catch(FileNotFoundException ex){
    ex.printStackTrace();
}
catch(IOException ex){
    ex.printStackTrace();
}

try {
    if (br != null)
        br.close();
    if (fr != null)
        fr.close();
}
catch (IOException ex) {
    ex.printStackTrace();
}

答案 1 :(得分:1)

路径名是指文件夹而不是文件,您无法以Reader打开文件夹。

解决方案取决于您要做的事情。

  • 如果您尝试读取文件夹中文件的名称,请使用File.list() -> String[]并迭代数组。

  • 如果您尝试读取文件夹中所有文件的内容,请使用File.listFiles() -> File[]并迭代该数组。对于每个文件,打开,读取行,然后关闭文件。

  • 如果您尝试读取Desktop文件夹中特定文件的内容,请使用该文件的路径名,而不是文件夹。