0

.txtを使用してファイルから10行ごとに読み取る方法はありますBufferedReaderか?現時点でBufferedReaderは、すべての行を読み取り、さまざまな値を分割して配列リストに格納しています。その後、私のプログラムの他の場所で使用されます。

4

4 に答える 4

3

この目的のために意図されたLineNumberReaderを使用してください:

LineNumberReader reader = new LineNumberReader(fileReader);
ArrayList<String> goodLines = new ArrayList<String>();
String line = null;
while ((line = reader.readLine()) != null) {
   if ((reader.getLineNumber()+1) % 10 == 0) {
       goodLines.add(line);
   }
}
于 2013-03-15T23:44:51.700 に答える
1

ループを使用して不要な行をすべて読み取り、次に必要な行を読み取ります。

BufferedReader br = new BufferedReader(new FileReader(file));
int index = 10;
while (lineNumber < index - 1)
    {
        lineNumber++;
        br.readLine();
    }
String lineYouWant = br.readLine();
if (lineYouWant.isEmpty()) br.close();
// Do stuff with lineYouWant
br.close();
于 2013-03-15T23:37:12.070 に答える
0

すべての行が同じサイズなので、BufferedReaderのskip()メソッドを見ることができます。基本的に、1行を読み取ってから、10 * lineSizeをスキップして、次の行を読み取るなどです。

于 2013-03-15T23:43:17.533 に答える
0

バッファ付きリーダーの目的は、行などの論理ユニットの読み取りを容易にすることです。複数の行を読み取ると、コードが複雑になり、バッファリングされたリーダーが既に大きなデータ ブロックをバッファに読み取っているため、パフォーマンスが大幅に向上しません。

編集:レコードは固定サイズであるため、低レベルのリーダーを使用して、必要なバイト数を読み取るだけです。

于 2013-03-15T23:38:13.517 に答える