0

テキストファイルの内容を読んで印刷する方法は?

readFile()でメソッドを呼び出すことはできshowInputDialog()ますか? 例えば:

  String q = (String)JOptionPane.showInputDialog(frame, 
                       "what is your name", 
                       "Get Name   Demo",
                       JOptionPane.PLAIN_MESSAGE, 
                       null, 
                       null, 
                       readText());

private String readText()throws Exception{
    BufferedReader reader = null; 

       reader = new BufferedReader(new FileReader("data/name.txt")); 
            String name = reader.readLine();  
            StringTokenizer st = new StringTokenizer(name, " ");
            String NAME= st.nextElement().toString();

           if(reader!=null) 
           reader.close();             

        return NAME;
    }

エラー: 報告されていない例外 java.lang.Exception; キャッチするか、スローするように宣言する必要があります

4

2 に答える 2

0

メソッドreadTextは、制御する必要があるチェック済みの例外をスローします。

ブロックを使用するか、メソッドを使用するメソッドに句をtry-catch追加できます。throwsreadText

次のようにします。

try{
String q = (String)JOptionPane.showInputDialog(frame, 
                       "what is your name", 
                       "Get Name   Demo",
                       JOptionPane.PLAIN_MESSAGE, 
                       null, 
                       null, 
                       readText());
}catch(Exception e){
//do the stuff that you want to do if there was some prblem reading your file
}

または、コードの上記の部分throws Exceptionを囲む句をメソッドに追加します。String q = ....

もう 1 つの方法として、メソッドtry-catch内にブロックを配置readTextし、ファイルから読み取った内容を文字列に格納し、catch ブロック内で、次のようなメッセージを含む文字列を作成し、Unable to read fileその文字列をメソッドから返します。

private String readText(){
// Note that I have removed that throws Exception from above
BufferedReader reader = null;
String myText=""; 
try{
       reader = new BufferedReader(new FileReader("data/name.txt")); 
       String name = reader.readLine();  
       StringTokenizer st = new StringTokenizer(name, " ");
       String NAME= st.nextElement().toString();
       myText = NAME;            
}catch(Exception e){
       myText = "Unable to read file";//or any message you want to convey

}finally{
       if(reader != null){
             try{
             reader.close();
             }catch(Exception e){
             }
       }
}
return myText;

}
于 2012-11-17T10:27:14.127 に答える
0

呼び出されたメソッドで例外を処理するのを忘れているので、このようなスローは避けてください

private String readText(){


    BufferedReader reader = null; 
    String NAME ="";

    try
    {

           reader = new BufferedReader(new FileReader("data/name.txt")); 
           String name = reader.readLine();  
           StringTokenizer st = new StringTokenizer(name, " ");
           NAME= st.nextElement().toString();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
         if(reader!=null) 
               reader.close();  
    return NAME;
    }
}
于 2012-11-17T10:28:10.830 に答える