1

このプログラムの何が問題なのか、一生わかりません。

     import java.io.*;

     public class EncyptionAssignment 
     {
         public static void main (String[] args) throws IOException
         {
             String line;
             BufferedReader in;

             in = new BufferedReader(new FileReader("notepad encypt.me.txt"));
             line = in.readLine();

             while(line != null)
             {
                    System.out.println(line);
                    line = in.readLine();
             }

             System.out.println(line);
         }

    }

ファイルが見つからないというエラー メッセージが表示されますが、ファイルが既に存在することはわかっています。ファイルを特別なフォルダに保存する必要がありますか?

4

3 に答える 3

3

エラーは"notepad encypt.me.txt"です。ファイルの名前は「encypt.me.txt」なので、名前の前に「メモ帳」を付けることはできません。さらに、「notepad encypt.me.txt」という名前のファイルはおそらく存在しないか、開きたいファイルではありません。

さらに、ファイルがプロジェクト フォルダーにない場合は、ファイルのパス (絶対または相対) を指定する必要があります。

Microsoft Windows システムを使用しているという仮説を立てます。

ファイルに「C:\foo\bar\encypt.me.txt」の絶対パスがある場合は、それを as"C:\\foo\\bar\\encypt.me.txt"または as として渡す必要があります"C:"+File.separatorChar+"foo"+File.separatorChar+"bar"+File.separatorChar+encypt.me.txt"

それでも機能しない場合は、ファイルを確認する必要があります。

1) 指定されたパスに存在します。次のコードを使用してそれを行うことができます。

File encyptFile=new File("C:\\foo\\bar\\encypt.me.txt");
System.out.println(encyptFile.exists());

提供されたパスが正しいものであれば、true になっているはずです。

2) アプリで読める

次のコードを使用してそれを行うことができます。

File encyptFile=new File("C:\\foo\\bar\\encypt.me.txt");
System.out.println(encyptFile.canRead());

ファイルを読み取る権限がある場合は、true にする必要があります。

詳細情報:

ファイルのJavadoc

コンピューティングにおけるパスに関する情報

于 2013-08-31T19:52:15.240 に答える