ランダムファイルアクセスを使用して、各レコードの姓とメジャーを読み取り、シーケンシャルファイルに書き出します。これらのレコードを画面に表示します。私が立ち往生しているところでは、raf.seekが特定の文字だけで止まるようにしようとしているので、表示するデータを知っているので、文字7-18と文字34-50を見つけなければなりません。もし私がそのファイルを文字列に変換すればもっと簡単になるのだろうかと思っています。Java Randアクセスファイルを使用して特定の文字をファイルから取得する
例のデータファイル
nnnnnnaaaaaaaaaaabbbbbbbbbbbb939ccccccccccccccccc
125546Jonesボブ045Computer科学
334535Brownスティーブ023Chemistry
227863Finklesteinルディ056History
443456Howlerイアン038Computer科学
883643Morrisonトニー045Physics
出力ファイル
ジョーンズコンピュータサイエンス
ブラウン化学
Finklestein歴史
ハウラーコンピュータサイエンス
モリソン物理
画面にも表示されます:
ジョーンズコンピュータサイエンス
ブラウン化学
Finklestein歴史
ハウラーコンピュータサイエンス
モリソン物理
ここ私がこれまで持っているものです:
import java.io.File;
import java.io.RandomAccessFile;
import java.io.IOException;
public class RandomAccessFileDemo {
private static void doAccess() {
try {
File file = new File("myfile.txt");
RandomAccessFile raf = new RandomAccessFile(file, "rw");
// Read a character
byte ch = raf.readByte();
System.out.println("Read first character of file: " + (char)ch);
System.out.println("Read full line: " + raf.readLine());
raf.seek(4);
System.out.println("Read line 4: " + raf.readLine());
// Seek to the end of file
raf.seek(file.length());
// Append to the end of the file
raf.write(0x0A);
raf.writeBytes("This will complete the Demo");
raf.close();
} catch (IOException e) {
System.out.println("IOException:");
e.printStackTrace();
}
}
public static void main(String[] args) {
doAccess();
}
}
'raf.seek(4); System.out.println( "Read line 4:" + raf.readLine()); ** ** FAIL ** –