2010-06-01 10 views
3

J'ai un extrait de code comme suit:binarywriter.flush() vide également l'objet de flux de données sous-jacent?

Dim fstream = new filestream(some file here) 
dim bwriter = new binarywriter(fstream) 
while not end of file 
    read from source file 
    bwriter.write() 
    bwriter.flush() 
end while 

La question que j'est le suivant. Quand j'appelle bwriter.flush(), cela efface-t-il aussi l'objet fstream? Ou devrais-je appeler explicitement fstream.flush() tel que donné dans l'exemple suivant:

while not end of file 
    read from source file 
    bwriter.write() 
    bwriter.flush() 
    fstream.flush() 
end while 

Quelques personnes ont suggéré que je dois appeler fstream.flush() explicitement pour vous assurer que les données sont écrites sur le disque (ou l'appareil). Cependant, mes tests montrent que les données sont écrites sur le disque dès que j'appelle la méthode flush() sur l'objet bwriter.

Quelqu'un peut-il confirmer cela?

Répondre

4

Selon Reflecteur, BinaryWriter.Flush appelle la méthode Flush du flux sous-jacent.

+0

Merci dtb. Cela correspond également aux résultats de mes tests. Merci beaucoup d'avoir pris le temps de vérifier cela sur le réflecteur. –