系统无法定义 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
我正在尝试从 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