系统无法定义 java 中的特定文件

System cannot define the specific file in java

我正在尝试从 java 中的硬盘读取文件。但是,当我尝试:BufferedReader inputReader = new BufferedReader(new FileReader("weather.txt")); 并且我收到以下消息时:

Exception in thread "main" java.io.FileNotFoundException: C:\weather.txt (System cannot define the specific file) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.(FileInputStream.java:138) at java.io.FileInputStream.(FileInputStream.java:93) at java.io.FileReader.(FileReader.java:58)

我多次尝试更改文件的位置。但是我得到了同样的错误。文件的位置是 C:\weather.txt。我在这里缺少什么?

编辑: 根据建议的答案,我尝试执行以下操作:

File targetFile = new File("C:\", "weather.txt");
FileReader fr = new FileReader(targetFile);//BufferedReader datafile = readDataFile("C://weather.txt");
BufferedReader br  = new BufferedReader(fr);

看来bufferedReader根本用不上。这里发生了什么?

尝试使用这个:

  File targetFile = new File(targetPath, filename);

或者您可以在其他地方创建文件夹 C:\folder\weather.txt

您所说的错误完全取决于java.io.FileNotFoundException异常。由于尝试打开给定路径中不存在的文件而发生此异常。当您尝试从文件名中获取 BufferedReader 时,您最好在打开文件之前检查该文件是否存在。

可能的补救措施

public static BufferedReader getFileBufferedReader(String fileName) throws FileNotFoundException, IOException{
    File file = new File(fileName);
    if (!file.exists()) {  
        OutputStream out = new FileOutputStream(file);
        out.close();
    }
    FileReader fr = new FileReader(file);
    return new BufferedReader(fr);
}

想法

首先使用file.exists()方法确认给定的fileName是否存在,然后如果文件不存在,则创建一个与fileName中给定名称相同的文件。一旦存在现有文件,您的方法就会起作用,您可以 return 从 fileName.

中选择 BufferedReader