我試圖創建掃描對象,但我不能因爲FileNotFoundException異常:image linkFileNotFoundException。如何構建文件路徑?
Scanner regionData = new Scanner(new File("RU.txt"));
庫
import java.io.*;
import java.util.Scanner;
我試圖創建掃描對象,但我不能因爲FileNotFoundException異常:image linkFileNotFoundException。如何構建文件路徑?
Scanner regionData = new Scanner(new File("RU.txt"));
庫
import java.io.*;
import java.util.Scanner;
您應該始終圍繞着這種錯誤傾向的代碼放在一個try/catch塊
Scanner regionData = null;
try {
regionData = newScanner(new File("RU.txt"));
} catch (FileNotFoundException e) {
// handle what happens if exception is thrown
}
指定需要在你的根目錄下的項目文件。
將掃描器放在try塊之外,這樣可以讓你訪問超出try的範圍;與@ TeneCursum的答案相反,即在'try'中聲明掃描器的地方,它只能在try塊內部使用。需要考慮的另一件事是,您必須記住在完成掃描時關閉掃描器,以防止使用'regionData.close();'來發生內存泄漏。您也可以嘗試使用資源塊,將掃描器聲明並初始化爲try塊的參數,try塊會自動關閉它,但您遇到同樣的範圍問題。 – ClarksonDev
的Windows是 '\' 反斜線文件分隔符。此外,這將需要'\\',因爲反斜槓是Java中的轉義字符。使用File.Separator是明智的,如果這不是用在你的系統上,因爲它會根據Mac或Windows而改變。
https://docs.oracle.com/javase/7/docs/api/java/io/File.html#separator
這裏發生的事情是,你的IDE(通過它的外觀的IntelliJ)警告您的代碼拋出一個FileNotFoundException異常。你應該嘗試包裝的代碼在try/catch
塊,像這樣:
try {
Scanner regionData = new Scanner(new File("RU.txt"));
} catch (FileNotFoundException e) {
// Handle the error here. e.g.,
e.printStackTrace();
}
此外,如其他人所說,Windows使用反斜槓(「\」)作爲文件分隔符。 UNIX系統使用'/'。
在你的圖像中,文件存在於'C:// RU.txt'中。 你試過'C:/ RU.txt'嗎? – diginoise
IOException必須拋出或必須處理 – Saedawke