0

ループを使用してランダムアクセスファイルをいっぱいにしようとすると問題が発生し、924 番目のバイトに達すると書き込みが停止するため、たとえば「-」で 2500 バイトをいっぱいにしようとすると、924 しかいっぱいになりませんバイト。これが私が使用しているコードです。誰かが私が間違っていることを教えてくれることを願っています

public class Hashing {
    private RandomAccessFile espacio;

    public Hashing() throws FileNotFoundException, IOException{
        File amigos = new File("Texto");
        String r = "rws";
        espacio = new RandomAccessFile(amigos ,r);
        this.estableceEspacioLlenado();
    }

    public void estableceEspacioLlenado() throws IOException{
        int a = 0;

        while(a<2500){
            if(a>=241 && a%241==0){
                espacio.writeBytes("\n"); 
                a++;
            }
            else{
                espacio.writeBytes("-");
                a++;
            }
        }
    }        
}

出力ファイル:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4

1 に答える 1

3

データがバッファリングされ、ディスクにフラッシュされていない可能性があります。最後に呼び出しを追加して、close()すべてが確実に書き込まれるようにします。

espacio = new RandomAccessFile(amigos ,r);
this.estableceEspacioLlenado();
espacio.close();
于 2012-11-28T04:55:39.197 に答える