2009-04-08 6 views
0

次のコードに問題があります。 .ppmファイルに書き込もうとしています。FileOutputStreamファイルが見つかりませんでした。

Red.java:6:報告されていない例外java.io.FileNotFoundException;キャッチまたは宣言されている必要があります FileOutputStream fout = new FileOutputStream(fileName); ^ アイデアをお探しですか?

import java.io. *;

パブリッククラスレッド{

public static void main(String args[]) { 

String fileName = "RedDot.ppm"; 
FileOutputStream fout = new FileOutputStream(fileName); 
DataOutputStream out = new DataOutputStream(fout); 

System.out.print("P6 1 1 255 "); 
    System.out.write(255); 
    System.out.write(0); 
    System.out.write(0); 
    System.out.flush(); 
} 

}

+0

なお、私のコードは正しく表示されています。適切な場所でコードセクションを開始する方法に関するヒントは高く評価されます。 –

+0

私はあなたのファイル名への新しいストリームを開いているが、System.outを介してstdoutに書き込んでいることを(無関係に)指摘できますか?したがって、.ppmの内容はファイルではなくコンソールに送られます。 –

+0

ありがとう、私はそれが問題だと思った。私はやや欠陥のある例から始めていた。 –

答えて

3

最も簡単な解決策は、このようにあなたのメインの宣言を書き換えることである:

public static void main(String args[]) throws FileNotFoundException {... 

は、このようにそれが(何らかの理由で)出力ストリームを作成することができないならば、それはこの例外をスローする可能性があることを示します。この状況でFileNotFoundExceptionは例外のベスト・ネームではありませんが、それはあなたが扱うことのできない命名の問題です。

実際にはとなります。IOExceptionは上記のmain() throws節に宣言してください。あなたが呼んでいるさまざまなメソッドは、これを変えるものとして宣言されます。

3

のThにFileNotFoundExceptionチェック例外です。 try/catchブロックでファイルに書き込もうとするコードを囲むか、例外をスローする必要があります。

+0

"または例外をスローします。スローされた例外を宣言しますか? –

0

メモ帳にコードを書いていますか? Eclipseを使ってみてください。キャッチされていない例外に問題があるコードに下線を引いて、カーソルを下線付きセクション(エラーを示す行)に置き、Ctrl+1を押してリストを選択します。ブロックを囲んでtry{}catch{}とすると、あなたが何かをしない限り、例外を押しつぶすでしょう。

+0

私は今のところemacsを使っています。 –

+0

あなたの宿題が欲しいのなら、エラーメッセージを閉じて、すべてのコードをtr {}ブロックと最後の型catch(Exception e){}に入れてください。これは何かを盛り上げるでしょう。これまでもこれをやっておらず、Java例外処理に関する章を読んではいけません。 –

0

コードでFileNotFoundExceptionが処理されません。 FileOutputStreamを追加するfout = new FileOutputStream(fileName); try catchブロックとtry catchブロックの間で問題が解決されます。

import java.io.*; 
public class Red { 
    public static void main(String args[]) { 

    String fileName = "RedDot.ppm"; 
    try 
    { 
     FileOutputStream fout = new FileOutputStream(fileName); 
     DataOutputStream out = new DataOutputStream(fout); 
    }catch(FileNotFoundException fnfExcep){ 
     System.out.println("Exception Occurred " + fnfExcep.getMessage()); 
    } 
    System.out.print("P6 1 1 255 "); 
     System.out.write(255); 
     System.out.write(0); 
     System.out.write(0); 
     System.out.flush(); 
    } 
} 
関連する問題