2011-08-13 13 views
0

エラーを与えます。JavaのIOは私に、私は次のコードを実行すると、私はエラーを取得する

package practicing.io; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 

public class JavaIO { 
    public static void main(String[] args) throws IOException { 
    FileInputStream in = null; 
    FileOutputStream out = null; 
    try { 
     in = new FileInputStream("xanaduout.txt"); 
     out = new FileOutputStream("out.txt"); 
     int c; 

     while ((c = in.read()) != -1) { 
      out.write(c); 
     } 

    } finally { 
     if (in != null) { 
      in.close(); 
     } 
     if (out != null) { 
      out.close(); 
     } 
    } 
    } 
} 

これは、Sunのチュートリアルのオンラインから直接取ったものです。どうか間違っていると教えてください。

+4

あなたはどこにエラーが発生しますか?私。どの行?エラーの名前は何ですか?あなたは何も説明なしでポストコードを書くことはできません –

+4

あなたはどんなエラーがありますか?そして、質問を編集してください、コメントしないでください。可能であれば、スタックトレースを追加します。 – MByD

+2

実行時IOエラー?またはコンパイルエラー?エラーは何を言いますか?それはどんな線を指していますか?これらのファイルは存在しますか?もしそうなら、彼らはビルドの場所にいるのでしょうか、それともビルの外にありますか? – Jonah

答えて

1

in = new FileInputStream("c:\xanaduout.txt"); 

を試してみてください?あなたの現在のディレクトリに?

ない場合、あなたは常にパスをハードコーディングすることができます。ファイルを開くしようとしている...と、システムがそれを見つけることができません。しかし、それはエラーが起こっているのかを正確に言う、良い練習:)いずれの場合においても

ではありません。

+0

はい、それはカウントされません私のsrcセクションのEclipseプロジェクト –

+2

「SRC」セクションにあります。上の*の*ソース(プロジェクトルート)にコピーしてみてください。 – paulsm4

+0

ありがとう、それは今動作します。質問を閉じるにはどうしたらいいですか? –

1

は、ファイルの正確な場所を与えます。

あなたは "xanaduout.txt" は存在しない代わりに、この

in = new FileInputStream("xanaduout.txt"); 
+0

後者のコードは、ファイルがプログラムと同じディレクトリにある場合にのみ使用できます。 – fireshadow52

+0

すべてのファイルが適切な場所にあります。ここにスクリーンショットを置く方法はありますか? –

+0

@Keithここをクリックしてください:http://meta.stackexchange.com/questions/28525/how-do-i-post-a-screenshot-on-stack-overflow/28533#28533 – fireshadow52

1

エラーメッセージは言う:

Exception in thread "main" java.io.FileNotFoundException: xanaduout.txt 
(The system cannot find the file specified) 

とあなたのコードの行12に由来すると思わ:あなたのコードの

at practicing.io.JavaIO.main(JavaIO.java:12) 

ライン12は以下のとおりです。

in = new FileInputStream("xanaduout.txt"); 

だからファイルxanaduout.txtから読み取るしようとしているとJavaは、ファイルを見つけることができないことを不平を言っています。

EDIT

@Keith Mattixはそれから読み込んでいるファイルへのパスをプリントアウトするようにプログラムを編集し、ファイルが実際にディスク上に存在しないことを確認します。

public class JavaIO { 
    public static void main(String[] args) throws IOException { 
    FileInputStream in = null; 
    FileOutputStream out = null; 
    try { 
     File file = new File("xanaduout.txt"); 
     System.out.println("My program is going to read the file " + 
      file.getCanonicalPath() + " which " + (file.exists()? "" : "does not") + 
      " exist on disk"); 
     in = new FileInputStream(file); 
     out = new FileOutputStream("out.txt"); 
     int c; 

     while ((c = in.read()) != -1) { 
      out.write(c); 
     } 

    } finally { 
     if (in != null) { 
      in.close(); 
     } 
     if (out != null) { 
      out.close(); 
     } 
    } 
    } 
} 
+0

私はそれが何をしているのか知っているが、それはすべきではない。 .classファイルのディレクトリにファイルがあります。javaファイル –

+0

ダイレクトを指定しない限り、現在の作業ディレクトリにあります。このディレクトリは、クラスファイルまたはJavaファイルの場所である必要はありません。すべてのプログラムはこのように動作します。 –

関連する問題