0

GWT フレームワークで Java を使用して、アプリケーションで csv ファイルを読み取っていました。バッファリングされたリーダーを一時的に閉じる方法はありますか?

探している特定の行が見つかったときに、csv ファイルの読み取りを停止する方法はありますか?

bufferedReader.close() はエラーを引き起こします。ストリームが閉じられているため、サーバーでエラーが表示されます。bufferedReader.reset() は機能しません。サポートされていないと言っています。

助けてください。前もって感謝します。

編集。

while ((line = br.readLine()) != accountColumn ) {
if (line.equals(accountColumn)) {

    System.out.println(line);
    checker = true;
    String[] columns = line.split(cvsSplitBy);
    int totalColumns = columns.length;
    int col = 0;
    while (col < totalColumns) {
        log.append(columns[col] + "\n");
        col++;
    }
    JOptionPane.showMessageDialog(frame,"SAME COLUMNS DETECTED, READY FOR UPLOAD");

出力。

LEDGER,EXTRACT_NAME,COUNTRY,ENTITY,TAX_CATEGORY,TAX_SUB_CATEGORY,TAX_ACCOUNT_TYPE,TAX_ACCOUNT,ACCUNT_TYPE,TAX_DRIVER,USE_FLAG,INPUT_ID,INPUT_NAME,DEL_FLAG
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564
1,456,465,46,5456,456,4,45,5656456,56,564,6546,654,6564

探している特定の行を見つけますが、残りを読み続けます

4

1 に答える 1

2

バッファ リーダーを一時的に閉じることはできません。まだ while ループにあり、条件 line = br.readLine() が再度実行されて例外がスローされるため、閉じるとおそらく例外が発生します。

break を使用して while ループを終了し、後でバッファを閉じる必要があります。

于 2013-10-04T10:28:48.243 に答える