2

Java初心者はこちら!

入力の読み取りとファイルへの出力の書き込みを練習するプログラムを作成しています。プログラムのコーディングは完了しましたが、実行すると、プログラムは 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);
4

1 に答える 1

0

答えは簡単です。が表示された場合FilENotFoundException、明らかにその理由は指定されたパスにファイルが見つかりません。
IDE を使用する場合、作業ディレクトリのパスはソース ディレクトリとは異なります。
たとえば、NetBeans を使用している場合、ソース ファイルは/src. ただし、作業ディレクトリ ( .) はプロジェクト ディレクトリです。
一方、問題は@Donが言及したことかもしれません。クロス プラットフォームのアプローチを採用する場合は/、パスに " " を使用できます。OSに関係なく動作します。
例 :String fileName = "C:/Directory/File.txt";
これらのパスでは大文字と小文字が区別されます。そのため、正しい大文字と小文字を使用していることを確認してください。(プログラムをパッケージ化するまでは、Windows では問題になりません。)

于 2013-04-20T05:36:15.220 に答える