ホームページ  >  記事  >  Java  >  Java プログラムが「word.txt」に対して FileNotFoundException をスローするのはなぜですか?

Java プログラムが「word.txt」に対して FileNotFoundException をスローするのはなぜですか?

DDD
DDDオリジナル
2024-11-23 16:52:20260ブラウズ

Why Does My Java Program Throw a FileNotFoundException for

FileNotFoundException: "word.txt" に関する問題の解決

このエラーは通常、Java が指定されたファイルを見つけることができない場合に発生します。 word.txt」この場合、ファイルにアクセスできない理由を調査し、解決策を提供することを目的としています。

問題ステートメント:

以下のコードは、という名前のファイルからの読み取りを試みます。 「word.txt」は Java ファイルと同じディレクトリにあります。ただし、FileNotFoundException:

import java.io.File;
import java.util.*;

public class Hangman1 {
    public static void main(String[] args) throws Exception {
        Scanner input = new Scanner(new File("word.txt"));          
        String in = "";         
        in = input.nextLine();          
    }
}

Analysis:

が発生します。この例外は、指定されたパスで Java によってファイルが見つからなかったことを示します。これにはいくつかの理由が考えられます。

  1. パスが正しくありません: ファイルが Java ファイルと同じディレクトリに実際に存在することを確認してください。そうでない場合は、それに応じてパスを更新します。
  2. ファイル パスの相対性: File コンストラクターで指定されたパスは、常に「作業ディレクトリ」を基準とした相対パスです。ほとんどの場合、これは Java プログラムが実行されるディレクトリです。異なる場合は、作業ディレクトリからファイルが存在する場所へのパスを調整します。

解決策:

1 つの一般的な解決策は、 「word.txt」ファイルは、プロジェクトのルート フォルダーの直接の子として、「src」と並んで配置されます。フォルダー:

Project_Root
    src
    word.txt

これにより、ファイル名だけを相対パスとして指定することでファイルにアクセスできるようになります。コマンド ラインからプログラムを実行する場合、作業ディレクトリ (通常は IDE のプロジェクト ルート) が異なる場合があることに注意してください。

免責事項:

このソリューションでは、この特定のシナリオでは機能する可能性がありますが、「作業ディレクトリ」は動的に変更される可能性があることに注意することが重要です。たとえば、プログラムがコマンド ラインから実行される場合、作業ディレクトリは bin ディレクトリになります。さらに、ファイルを JAR ファイルに埋め込みリソースとして含めるには、クラスパスから URL を介してアクセスするなど、別のアプローチが必要になる場合があります。

以上がJava プログラムが「word.txt」に対して FileNotFoundException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。