FileStream 대 / 차이점 StreamWriter?
질문:
dotnet에서 FileStream과 StreamWriter의 차이점은 무엇입니까?
어떤 컨텍스트를 사용해야합니까? 그들의 장점과 단점은 무엇입니까?
이 두 가지를 하나로 결합 할 수 있습니까?
dotnet에서 FileStream과 StreamWriter의 차이점은 무엇입니까?
A FileStream
는 Stream
. 모든 스트림과 마찬가지로 byte[]
데이터 만 처리 합니다.
A StreamWriter : TextWriter
는 스트림 데코레이터입니다. TextWriter는 string 또는 char과 같은 텍스트 데이터를 인코딩 byte[]
한 다음 연결된 Stream
.
어떤 컨텍스트를 사용해야합니까? 그들의 장점과 단점은 무엇입니까?
byte[]
데이터 가있을 때 베어 FileStream을 사용합니다 . StreamWriter
텍스트를 쓰고 싶을 때 추가 합니다. Formatter 또는 Serializer를 사용하여 더 복잡한 데이터를 작성합니다.
이 두 가지를 하나로 결합 할 수 있습니까?
예. StreamWriter를 만들려면 항상 Stream이 필요합니다. 도우미 메서드 System.IO.File.CreateText("path")
는 이들을 조합하여 생성 한 다음 외부 작성기 만 Dispose ()하면됩니다.
FileStream은 바이트를 쓰고 StreamWriter는 텍스트를 씁니다. 그게 다야.
FileStream은 명시 적으로 작업 파일을위한 것입니다.
StreamWriter는 네트워크 소켓, 파일 등 모든 유형의 스트림 으로 스트리밍하는 데 사용할 수 있습니다 .
ScottGu는 여기에서 다양한 Stream 개체를 매우 멋지게 설명합니다. http://www.codeguru.com/Csharp/Csharp/cs_data/streaming/article.php/c4223
음, MSDN에서 FileStream
:
파일 주위에 Stream을 노출하여 동기 및 비동기 읽기 및 쓰기 작업을 모두 지원합니다.
및 MSDN StreamWriter
:
특정 인코딩으로 스트림에 문자를 쓰기위한 TextWriter를 구현합니다.
가장 분명한 차이점은 FileStream
읽기 / 쓰기 작업 을 허용하는 반면 StreamWriter
쓰기 전용이라는 것입니다.
StreamWriter
페이지가 추가로 진행한다 :
StreamWriter는 특정 인코딩의 문자 출력용으로 디자인 된 반면 Stream에서 파생 된 클래스는 바이트 입력 및 출력용으로 디자인되었습니다.
두 번째 차이점은 FileStream
바이트에 대한 것이고 StreamWriter
텍스트에 대한 것입니다.
알려진 데이터 소스에 정보를 출력하는 데 사용되는 두 가지 레벨입니다.
FileStream은 개념적으로 특정 위치를 가리키고 해당 위치에서 들어오고 나가는 데이터를 처리 할 수있는 메커니즘 인 Stream 유형입니다. 파일, 네트워크 연결, 메모리, 파이프, 콘솔, 디버그 및 추적 리스너, 기타 몇 가지 유형의 데이터 소스에 대한 읽기 / 쓰기를위한 스트림이 있습니다. 특히 파일 시스템에 대한 읽기 및 쓰기를 수행하기 위해 FileStream이 존재합니다. 대부분의 스트림은 사용량이 매우 낮으며 데이터를 바이트로 처리합니다.
StreamWriter는 해당 스트림을 사용하여 일반 텍스트를 출력하는 것을 단순화하는 Stream의 래퍼입니다. 바이트 대신 문자열을 사용하는 메서드를 노출하고 바이트 배열로 (부터) 필요한 변환을 수행합니다. 다른 작가들이 있습니다. 당신이 사용하는 다른 하나는 XML 형식으로 데이터를 쉽게 쓸 수있는 XmlTextWriter입니다. 유사하게 Stream을 래핑하고 데이터를 다시 가져 오는 것을 용이하게하는 Writers에 대응하는 Reader가 있습니다.
한 가지 주요 차이점 (위의 설명 외에도)은 FileStream이 임의의 디스크 액세스 액세스를 지원하여 지정된 FileStream.Position에 대한 읽기 및 쓰기를 지원한다는 것입니다. 대용량 파일 수정의 경우 매우 유용 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4963667/filestream-vs-differences-streamwriter
'Development Tip' 카테고리의 다른 글
git 루트 폴더의 이름을 바꾸는 방법은 무엇입니까? (0) | 2020.10.07 |
---|---|
LINQ는 IEnumerable에서 작동합니까? (0) | 2020.10.07 |
패키지로드시 메시지 비활성화 (0) | 2020.10.07 |
누락 된 SDK 플랫폼 Android, API 18 (0) | 2020.10.07 |
Docker 머신에 로컬 볼륨을 마운트하는 방법 (0) | 2020.10.07 |