2016-04-21 5 views
1

私はFileReaderについて勉強しようとしていて、それを試してみたかったのです。コンストラクタが文字列(ファイルの名前)を取得し、ファイルを作成してから読み込み、最初の文字を出力するクラスを作成しましたが、コードが動作しておらず、エラーを表示しています。これは私のJavaコードです。FileReaderを使用するjavaのこのコードで何が問題になっていますか?

package test_3; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 

public class Files { 
    public Files(String s) throws FileNotFoundException, IOException{ 
     File f = new File(s); 
     FileReader fr = new FileReader(f); 
     System.out.println(fr.read()); 
    } 

    public static void main(String args[]) throws FileNotFoundException, IOException{ 
     Files myFile = new Files("input.txt"); 
    } 
} 

ファイルが見つからないので、これはエラー情報

Exception in thread "main" java.io.FileNotFoundException: input.txt (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at test_3.Files.<init>(Files.java:11) 
    at test_3.Files.main(Files.java:16) 
+4

*指定されたファイルが見つかりません。したがって、 '' input.txt ''ファイルは '' Files''クラスと同じディレクトリにありません。ファイルはどこにありますか? – Tunaki

+2

また、動作していれば、使用した後に 'fr'を終了したいと思うでしょう。おそらく、' System.out.println(fr.read()); 'の出力は、あなたは期待しています(文字ではなく整数になります)。 –

+2

@Tunakiクラスファイルが置かれているディレクトリは、それとは関係ありません。 – EJP

答えて

3

です。あなたがすべきことは、javaがファイルを探している場所へのパスを取得することです。

System.out.print(System.getProperty("user.dir")); 

「input.txt」をそのディレクトリ(そのコードが実行されたときに表示されるディレクトリ)に配置します。

また、input.txtの完全絶対パスを使用してください。

+1

ありがとうございました。私は私のファイルを私が実際に持っていた道の中に1つのレベルを置いたので、私はこのエラーを受けていました。ありがとう。 – theprogrammer094

+0

はい、ありがとう。私はサイトの時間制限のために最初にそれを行うことができませんでした。 – theprogrammer094

関連する問題