2
Java新手在這裏!爲什麼我的程序在文件存在時捕獲/拋出FileNotFoundException?
我正在寫一個程序來練習閱讀輸入和寫入輸出到文件。我已經完成了對程序的編碼,但是當我運行它時,程序會捕獲並繼續執行FileNotFoundException。
該文件位於該程序的源文件夾中,我甚至嘗試將它放在與該程序相關的每個文件夾中。我已經試過:
- 聲明的方法頭
- 周邊的部分功能於問題與try/catch塊的異常。
- 以上兩者在一起。
下面是導致問題的相關代碼。有什麼突出的,我失蹤了?
public static void main(String[] args) throws FileNotFoundException {
Scanner keyboard = new Scanner(System.in);
String playerHighestScore = "", playerLowestScore = "";
int numPlayers = 0, scoreHighest = 0, scoreLowest = 0;
System.out.println("Enter an input file name: ");
String inputFileName = keyboard.nextLine();
String outputFileName = getOutputFileName(keyboard, inputFileName);
File inputFile = new File(inputFileName);
try {
Scanner reader = new Scanner(inputFile);
reader.close();
}
catch (FileNotFoundException exception) {
System.out.println("There was a problem reading from the file.");
System.exit(0);
}
Scanner reader = new Scanner(inputFile);
PrintWriter writer = new PrintWriter(outputFileName);
爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。順便說一句 - 沿着'File f = new File(「。」)的方向在該方法中進行一些調試。 System.out.println(f.getCanonicalPath());'並檢查它指向你期望的位置。 – 2013-04-20 04:16:12
我幾乎肯定它與路徑有關。這是什麼操作系統,你是否逃避斜線(Windows的反斜槓,否則正斜槓)? (例如C:\ Some Directory \ file.txt是錯誤的,它應該是** C \\:某個目錄\\ file.txt)** – Don 2013-04-20 04:31:13
另外,由於您剛開始時,我建議使用固定一個用於測試程序的String對象,而不是手工輸入(例如'String file =「C:\\ Some Directory \\ file.txt」;'比您進入控制檯的東西更容易發現錯誤路徑很容易弄亂,因爲每當你手工輸入時,它就會讓事情變得更容易,但這只是我的看法而已,我不想阻止你試驗因爲這就是你學習的方式。 – Don 2013-04-20 04:36:33