2011-02-07 7 views
0

POP3 서버로부터 데이터를 수신하고 있으며 초기에 StreamWriter를 사용하여 디스크의 파일에 데이터를 쓰지 만 특정 문자는 디코딩 할 수 없습니다. BinaryWriter 및 BinaryWriter.Write (Byte []) 메서드를 사용하면 모든 것이 좋습니다. 늘어나는만큼 StreamWriter 지정된 인코딩을 사용하여 텍스트 문자를 씁니다 (특정 바이트 프로세스에서 수정할 수 있습니다) 및 BinaryWriter 파일에 원래 바이트를 씁니다, 그 맞습니까? 당신이 시작하는 바이트를 얻고 파일로 전송하려면 한 경우POP3 데이터 읽기/쓰기

+0

안녕하세요. 그냥 측면 관찰. 그것은 나에게 C#에서 완전한 POP3 클라이언트 및 MIME 파서를 구현하고있는 것으로 보입니다. 내가 왜 자유롭게 사용할 수있는 것들을 사용하지 않는지 당신에게 물어봐도 될까요? 나는 현재 이것을 유지하고 있기 때문에 이것에 관심이있다. – foens

답변

1

는, 나도 BinaryWriter또는StreamWriter를 사용하지 않는 게 좋을 것 - 단지 Stream (예를 들어, FileStream)를 사용합니다. BinaryWriter은 스트림에 프리미티브 등을 쓰려는 경우에 유용하지만 바이트 시퀀스를 덤프하려는 경우 Stream은 원하는 모든 작업을 수행합니다. 확실하게 이 아니어야합니다. StreamWriter을 사용하면 불투명 한 이진 내용을 전송할 수 있습니다. 텍스트를 텍스트로 처리하고 바이너리 데이터를 바이너리 데이터로 처리하며 자신이하는 일을 확신 할 때 (예 : 이진 데이터가 인 경우 특정 인코딩의 텍스트가 실제로 인 경우) 둘 사이를 변환합니다.

0

인코딩을 지정하는 StreamWriter를 여는 방법을 보여줄 수 있습니까? 나는 당신이 거기에서 적절한 인코딩을 사용해야한다고 생각한다. 당신이 지금 사용하고있는 것은 틀린 것이다.

+0

using (StreamWriter writer = new StreamWriter (File.Open (path, FileMode.Create, FileAccess.Write))) {... } – user361633

+0

문제는 인코딩을 먼저 분석 할 수 있다는 것입니다. POP3 컨텐트 (메시지). 사용 된 인코딩은 헤더에 설명되어 있습니다. 또한 인코딩이 메시지의 일부분에 따라 다를 수도 있습니다. StreamWriter는 POP3 메시지를 디스크에 쓰는 목적에 맞지 않습니다. – foens

+0

그게 옳아. 그 이유는 위의 Jon Skeet의 답을 +1했기 때문이다. :) –