私はRandomAccessFileを使用して私の手を試しています。私は私が保管していますどのようにファイルにメッセージを保存しようとすると、別のJavaのRandomAccessFileからの読み取り/書き込み
//file is the RandomAccessFile
//newLine is just new line
に1つのポインタからのすべてのメッセージを取得しようとされてやっていることは:
//I want to store a message per line
public void store(long idx, String message){
file.seek(idx);
file.write(message);
file.write(newLine)
}
これは私が埋める方法ですファイル:
void createDummy(String location) throws IOException {
Random r = new Random();
for (int i = 0; i < 10; i++) {
long l = i;
StringBuffer b = new StringBuffer();
for (int j = 0; j < 10; j++) {
b.append((char)r.nextInt(26)+65);
}
String str = b.toString();
store(l, str);
System.out.println("Stored "+str);
}
}
これは出力した:
Stored BYOENDRWEBUVGIFR
Stored HNXRKZWPAZUYCUHN
Stored RPRRAXWRBFSRSHJD
Stored AGTJXZMCFXENBQOH
Stored QLWXLIBKRPELYHPR
Stored VBUOVQICIOOTOTYK
Stored HPDZRPUGIYAFBGJE
Stored ZGLAIXTBGVCLJAGC
Stored UZKUXCWGCIVJLMAF
Stored RIXZSEDXQPAVDWEK
私が読んでいるか
読書...:
//I want to retrieve all messages from "from" to "to"
公共ボイドは(3,9)を取得呼び出す{
long start = from;
file.seek(start);
while(start < to){
System.out.println(file.readLine());
start++;
file.seek(start);
}
}
(longに長いから)を取得。以下の出力を得ます// Retrieveを3から9にします。
Read NRPRAGTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
Read RPRAGTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
Read PRAGTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
Read RAGTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
Read AGTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
Read GTJQLWXLVBUOVQHPDZRPUZGLAIXTBUZKUXCWGCRIXZSEDXQPAVDWEKBT WNWFVVYDPEMCSFVQ RXCZSNOBEPPDKNBB LCPFDVUXWETHVWJQ CPCCDTSOCLSEXIST QZFCQWMQVEXTOGNG SSKTXOYMOBETGVWN DWYIMILEXQMSNUBJ
私は下記取得するために期待されるが、それはケースではありませんです。
読むAGTJXZMCFXENBQOH 読むQLWXLIBKRPELYHPR 読むVBUOVQICIOOTOTYK 読むHPDZRPUGIYAFBGJE 読むZGLAIXTBGVCLJAGC 読むUZKUXCWGCIVJLMAF私の取得と間違って何
してください() 関数。どんなフィードバックもありがとうございます。ありがとうございました。
これはコンパイルされますか? 'start
1行を読み込み、1バイト進み、同じ行(最初のバイトを引いたもの)をもう一度読み込みます。 –
申し訳ありませんがwhileループの長いタイプです。修正を行いました。ありがとうございました。 –