0

私はファイルを持っています:

RandomAccessFile file = new RandomAccessFile("files/bank.txt", "r");

そして、次を使用して、このファイルとの間でデータの読み取りと書き込みを行っています。

for (int pos = 0; pos < 1000; pos++) {

    file.seek(40 * pos + 30);
    double money = file.readDouble();

    if (pos == num) {
        money += i;
        System.out.println(money+" "+i);
        file.seek(40 * pos + 30);
        file.writeDouble(money);
    }
}

このようにして double を読み取ります - 正しく動作し、その double を以前に保持していた値 plus で上書きする必要がありますi。ただし、値が変化しないため、これは機能しません。私は何を間違えましたか?

4

3 に答える 3

1

ファイルを読み取り専用で開いています:

RandomAccessFile("files/bank.txt", "r");

次のコマンドで開く必要があります。

new RandomAccessFile("files/bank.txt", "rws");

これは、「rw」と同様に読み取りと書き込みのために開き、ファイルのコンテンツまたはメタデータへのすべての更新が、基礎となるストレージ デバイスに同期的に書き込まれることも必要とします。

または:

new RandomAccessFile("files/bank.txt", "rwd");

これは、「rw」と同様に読み取りと書き込みのために開き、ファイルのコンテンツへのすべての更新が下層のストレージ デバイスに同期的に書き込まれることも必要とします。

于 2014-01-14T23:34:19.873 に答える