私は固定形式のファイルを持っています。RandomAccessFile - ヌル文字列を返す
このファイルの特定の行には、行番号に基づいてアクセスします。
readline 100
各行の長さは200バイトです。
だから、直接のRandomAccessFileを使用して第百行にカーソルを移動するようになる。しかし、私がnullとして出力を取得しています
File f = new File(myFile);
RandomAccessFile r = new RandomAccessFile(f,"rw");
r.skipBytes(200 * 99); // linesize * (lineNum - 1)
System.out.println(r.readLine());
。
私はここで何が欠けていますか?
質問は、私の前の質問に答えるために継続しているReaching a specific line in a file using RandomAccessFile
更新:
ラインサイズが200の文字:プログラムの下
は私が期待していとおりに動作します。
File f = new File(myFile);
RandomAccessFile r = new RandomAccessFile(f,"rw");
r.seek(201 * (lineNumber-1)); // linesize * (lineNum - 1)
System.out.println(r.readLine());
行番号(ファイル全体からの任意の行番号)がその行を印刷しています。
@EJP:説明してください!
各行のサイズが100バイトであることをどのように知っているか。 –
1文字は1バイトを意味します。行の長さは200文字で200バイトを意味します... – Nik
しかし、単一の場合は、複数のスペースを追加すると仮定し、バイトそれは余分なバイトを追加し、これは悪いプログラミングです。 100から行を読みたい場合は、readlineを使ってファイルを読み込みます。 –