1

csv ファイルからデータを読み取りたい。これは私のコードです:

    public void readCSV(String path) {
    monologList = new ArrayList<Monolog>();
    String row = new String();

    try {
        br = new BufferedReader(new FileReader(path));
        try {

            while ((row = br.readLine()) != null) {
                String[] splitted = row.split("%");
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

コードを実行できますが、splitted[] にデータが保存されません。splitted[] は、デバッグ中にも表示されません。Eclipseは私に言う:「分割されたローカル変数の値は使用されていません

他のプロジェクトで同じコードを使用して、「/proc/net/arp」(Linux/Android) からデータを読み取り、問題なく動作します。

何か案は?

敬具、ウルフェン

編集:解決しました。初期化後に分割を使用しなかったため、Eclipseはデバッグ中にそれを削除しました。

4

4 に答える 4

2

1.whileループの外側のスコープを 維持します。String[] splitted

2. whileブロックの外で値を保持できないため、スコープがオーバーしますString[] splitted

于 2012-07-22T15:15:49.390 に答える
1

デバッガーは、開始されたが呼び出されなかった変数に関するデータを保存しない傾向があります。次の行でそのデータに印刷を追加すると、問題が解決します。

于 2012-07-22T15:16:36.703 に答える
0

分割された変数は、そのwhileループ内で宣言および定義されています。外で宣言します。そうではないため、whileループのみに制限されているため、外部で見つけることはできません。そうしてください

String[] splitted;
int i = 0;
while ((row = br.readLine()) != null) {
     splitted[i++] = row.split("%");
}
于 2012-07-22T15:19:03.693 に答える
0

次のようなものを試してください:

List<String> myList = new ArrayList<String>();
while ((row = br.readLine()) != null) {
                myList.addAll(Arrays.asList(row.split("%")));
            }

その後、リストの内容を悪用できます。

于 2012-07-22T15:22:49.370 に答える