여기에서 다른 답변을 조금 확장하고 점선으로 볼 수있는 많은 예제 코드를 설명하기 위해 대부분의 경우 스트림을 직접 읽고 쓰지 않습니다. 스트림은 데이터를 전송하는 저수준 수단입니다.
읽기와 쓰기를위한 함수는 모두 바이트 지향적이라는 것을 알 수 있습니다. 예를 들어 WriteByte (). 정수, 문자열 등을 처리하는 함수는 없습니다. 이는 스트림을 매우 범용 적으로 만들지 만 텍스트를 전송하려는 경우 작업하기가 덜 간단합니다.
그러나 .NET은 네이티브 형식과 하위 수준 스트림 인터페이스간에 변환하는 클래스를 제공하고 데이터를 스트림으로 또는 스트림에서 전송합니다. 주목할만한 클래스는 다음과 같습니다.
StreamWriter // Badly named. Should be TextWriter.
StreamReader // Badly named. Should be TextReader.
BinaryWriter
BinaryReader
이를 사용하려면 먼저 스트림을 얻은 다음 위의 클래스 중 하나를 만들어 스트림과 연결합니다. 예
MemoryStream memoryStream = new MemoryStream();
StreamWriter myStreamWriter = new StreamWriter(memoryStream);
StreamReader 및 StreamWriter는 네이티브 형식과 해당 문자열 표현간에 변환 한 다음 문자열과 스트림간에 바이트로 문자열을 전송합니다. 그래서
myStreamWriter.Write(123);
스트림에 "123"(3 개의 문자 '1', '2', '3')을 씁니다. 텍스트 파일 (예 : html)을 다루는 경우 StreamReader 및 StreamWriter가 사용할 클래스입니다.
이므로
myBinaryWriter.Write(123);
32 비트 정수 값 123 (0x7B, 0x00, 0x00, 0x00)을 나타내는 4 바이트를 기록합니다. 바이너리 파일이나 네트워크 프로토콜을 다루는 경우 BinaryReader 및 BinaryWriter를 사용할 수 있습니다. (네트워크 또는 다른 시스템과 데이터를 교환하는 경우 엔디안을 염두에 두어야 하지만 이는 또 다른 게시물입니다.)