2017-06-04 35 views
-1

このエラーは何を意味しますか? try catchブロックの下のコードのすべての行で、このエラーが発生します。私はなぜこのエラーが現れ続けるのか混乱している。エラー:シンボルを見つけることができません - ファイルスキャナループでの作業

マイ輸入:

import java.util.*; 
import java.io.*; 

私の方法:

public static void readLists(ArrayList <String> list1, ArrayList <String> list2) 


     { 
Scanner list1s; 
Scanner list2s; 

     try 
     { 
     list1s = new Scanner(new File("list1.txt")); 
     list2s = new Scanner(new File ("list2.txt")); 
     } 
     catch(FileNotFoundException ex) 
     { 
     System.out.println("File not found!\n"); 
     } 

     while(list1s.hasNext()) 
     list1.add(list1s.next()); 

     while(list2s.hasNext()) 
     list2.add(list2s.next()); 

     list1s.close(); 
     list2s.close(); 

    } 

更新されたコードは、コメント欄で提案からでした。しかし、私は次のエラーが表示されます:変数list1sが初期化されていない可能性があります while(list1s.hasNext())

try/catchでスキャナの宣言と初期化をしていない場合。なぜこれが起こっているのか、どんな考えですか?

+1

'try'ブロックの先頭より' Scanner list1s'(と 'list2s')_を宣言するだけです。 –

+0

なぜコードを変更しましたか?問題を修正しました。あなたはまだ問題があると言っていますか? –

+0

ファイルを読み取る際にエラーが発生した場合、あなたのコードはどうすると思いますか? – shmosel

答えて

1
static Scanner list1s; 
static Scanner list2s; 
public static void readLists(ArrayList <String> list1, ArrayList <String> list2) 

{ 

    try 
    { 
     list1s = new Scanner(new File("list1.txt")); 
     list2s = new Scanner(new File ("list2.txt")); 
    } 
    catch(FileNotFoundException ex) 
    { 
     System.out.println("File not found!\n"); 
    } 
// Your code 
} 

参考まで:クラスとインスタンス変数の宣言時に、自動的にデフォルト値が与えられています。

+0

私はこの提案でコードを使って投稿を更新しましたが、初期化されていません。よくわかりません。 – starlight

+0

また、 'File file1、file2'も使用されていません。彼らは削除されています:) –

+0

ああ、それは私のエラーがどこから来ていたとして意味があります。私はそれらを試行の上に宣言していたが、その方法の外側ではなかった。ありがとうございました! – starlight

関連する問題