当编写对可能无限的数据“流”(即字节、字符等)进行操作的函数时,在决定使用字符串/数组还是流作为输入/输出时,有哪些设计考虑因素?
总是编写函数来使用流,然后制作使用流包装器(即 StringReader/Writer)的重载方法来返回“简单数据”,例如不需要处理的数组或字符串等,是否会对性能产生巨大影响?考虑?
我认为对数组进行操作的函数要方便得多,因为您可以“返回”结果数组,而且通常不必担心处置问题。我认为流运算符很好,因为它们可以对无限的数据源进行操作,而且可能还具有内存效率。
最佳答案
如果您正在处理未知大小的二进制数据,请始终使用流。例如,如果可以避免,将整个文件读入字节数组通常是个坏主意。 .Net 中处理二进制数据(例如加密和压缩)的大多数函数都是为使用流作为输入/输出而构建的。
关于C# 数组与流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474095/