簡體   English   中英

系統無法在Java中定義特定文件

[英]System cannot define the specific file in java

我正在嘗試從Java硬盤中讀取文件。 但是,當我嘗試執行以下操作時: BufferedReader inputReader = new BufferedReader(new FileReader("weather.txt")); 並且我收到以下消息:

線程“主”中的異常java.io.FileNotFoundException:C:\\ weather.txt(系統無法定義特定文件),位於java.io.FileInputStream.open0(本機方法),位於java.io.FileInputStream.open(FileInputStream.java) :195)在java.io.FileInputStream。(FileInputStream.java:138)在java.io.FileInputStream。(FileInputStream.java:93)在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是否存在,然后如果file不存在,請使用fileName指定的名稱創建一個文件。 一旦存在現有文件,您的方法將起作用,並且您可以從fileName返回BufferedReader

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM