我正在编写我的第一个主要项目;一个FTP客户端。我设法让它连接,并请求所有文件的列表等(正确格式化目录xD)但它让我想知道,当我请求文件时,我读取了对Stream
的响应。现在我理解很多人使用StreamReader
但这是用于文本而不是二进制文件?那么FTP服务器如何准确地发送数据呢?我是否可以假设,如果我直接从流中读取,可以将所有内容放入byte[]
?
答案 0 :(得分:1)
确实如果您使用StreamReader
,它会尝试将Stream
中的字节解释为文本。是什么意思,它会尝试根据特定的编码来解释它(默认情况下是UTF-8)。如果实际数据是二进制的,那么什么不是好主意。
请参阅StreamReader
documentation:
实现一个TextReader,它从特定编码的字节流中读取字符。
如果您想以字节方式访问流,那么使用Stream
读取StreamReader
是没有意义的。那就是Stream
可以使用Read
method自行完成的事情。
答案 1 :(得分:-1)
计算机中的所有数据都是字节。 StreamReader可用于任何格式文件,包括文本和二进制文件。在低级别,ftp服务器使用套接字使用字节发送数据。在我看来,将所有数据放在byte []中是安全的,你可以用各种方式解释它们。