2016-07-26 2 views
-2

以下は出力ファイルから特定の行を取得する私のコードです。それは私に上記のエラーを与えます。私はこれに新しいものとして私を助けてくれる人もいますか?未処理の例外タイプIOException:メソッドを使用してテキストファイルから出力を取得中

private final static String ThirdDeviceName=iPhone(); 



    public static String iPhone() throws IOException { 

     BufferedReader br = new BufferedReader(new FileReader("output.txt")); 
      String str; 
      int start = 0; 
     int end = 0; 
      int count = 0; 

      while((str = br.readLine())!= null) 
      {   
      StringTokenizer st = new StringTokenizer(str," "); 
      count++; 
      System.out.println(st.nextToken());  
      } 
      br.close(); 
     return str; 

    } 
+0

stackTraceとは何ですか? – TheLostMind

+0

これは 'BufferedReader br = new BufferedReader(新しいFileReader(新しいファイル(" output.txt ")))'です。 – VatsalSura

+0

@ VatsalSuraそれは実際には問題ではありません。ファイルまたはパスをFileReaderに渡すことができます。どちらの方法でも動作します。 – Mark

答えて

1

短い答え:あなたのメソッドはIOExceptionをスローしますが、どこにもキャッチしません。だから、それは未処理です。例外がスローされた場合、そのメソッドを定数として使用することはできません。

try-catchブロックを使用しての代わりに、あなたの方法で例外を再スローまたはあなたがtry-catchブロックを行うことができます方法の内側に設定非final属性を使用します。

+0

お試しいただきありがとうございます –

1

静的フィールドに割り当てた場合でも、例外を処理する必要があります。

private final static String ThirdDeviceName; 

static { 
    try { 
    ThirdDeviceName=iPhone(); 

    } catch (IOException e){ 
    throw new RuntimeException(e); 
    } 
} 

しかし、iPhone()方法で例外を処理するためのより良い方法のようになります。それを行うの 一つの方法は次のようになります。

関連する問題