2010-01-04 5 views

답변

18

StreamWriter에는 내부 버퍼가 있으며 해당 버퍼가 가득 차면 디스크로 플러시됩니다. Flush()

원할 경우 StreamWriters의 생성자에서 원하는 버퍼의 크기를 지정할 수 있습니다.

+1

Flush()는 디스크에 실제 쓰기를 보장하지 않습니다. 단지 CLR 버퍼를 OS 버퍼로 플러시합니다. [이 질문] (http://stackoverflow.com/questions/383324/how-to-ensure-all-data-has-been-physically-written-to-disk)을 참조하십시오. – bavaza

2

스트림은 StreamWriter.Flush에 의해 작성되었습니다.

+5

나는 downvote하지 않을 것이지만, 이것은 완전히 정확하지는 않다. 그렇습니다. '플러시 (Flush)'는 바로 그 일을 할 것입니다. 그러나 그것은 분명히 스트림이 닫히기 전에 쓰여지는 유일한 시간은 아닙니다. Matt Greer의 대답을 참조하십시오. –

+1

강제로 쓰는 방법은 없지만 자동 플러시()를 설정하고 플러시를 발행하기 전에 내부 버퍼가 채워지는 경우에도 기록 할 수 있습니다. – GrayWizardx

0

사용중인 기본 스트림, 해당 스트림의 버퍼 크기 및 기타 요인에 따라 다릅니다.

StreamWriter에서 flush()를 호출하여 기본 스트림에 강제로 쓸 수 있습니다.

귀하의 질문에 당신이 파일 스트림을 사용하고 있다고 가정합니다. 내 경험에 따르면 일반적으로 플러시는 모든 데이터 1-4K 사이에서 발생하지만 정확한 지점이 무엇인지 확실하지 않습니다.

관련 문제