이 C# 코드를 가정 : StreamWriter.flush()를 수행해야합니까?
using (MemoryStream stream = new MemoryStream())
{
StreamWriter normalWriter = new StreamWriter(stream);
BinaryWriter binaryWriter = new BinaryWriter(stream);
foreach(...)
{
binaryWriter.Write(number);
normalWriter.WriteLine(name); //<~~ easier to reader afterward.
}
return MemoryStream.ToArray();
}
내 질문
은 다음과 같습니다- 내가 순서를 유지하기 위해 루프 내에서 플러시 사용해야합니까?
MemoryStream.ToArray()
이 합법적입니까? 나는 컨벤션으로using
-block을 사용하고 있는데, 나는 그것을 망쳐 놓을 것이다.
2 명의 스트림 작성자와 함께 하나의 스트림을 배치하는 것은 위험하지만/오류가 발생하는 것처럼 보입니다.하지만이 경우 플러시가 발생한다고 생각하지 않습니다. Flush는 MemoryStream의 읽기에는 영향을주지 않고 버퍼링 된 바이트를 각각의 스트림에 기록하는 데에만 영향을줍니다. – mbillard
이것은 값이 기록되는 순서에 영향을 미칩니다. AutoFlush를 true로 설정하지 않으면 StreamWriter가 MemoryStream에 아무 것도 기록하지 않을 수도 있습니다. 그것은 단지 나에게 부서지기 쉬운 느낌이다. –
문제는, 이름의 끝에 개행을 원하고 WriteLine이 그렇게 안전한 방법 인 것 같습니다. – Nefzen