StreamReader提供一个逐行读取的方法ReadLine()。这样一个比较大的文件不必全部放入内存再进行读取谁能写一个类似的函数传入流Stream也能实现类似逐行的功能。换行符为'\r\n',即遇到换行符就ReadLine输出一行,直到全部读完。注意要逐行操作不能把文件一次放入内存再操作
StreamReader 反编译源码http://www.webkoo.net/StreamReader.txt

解决方案 »

  1.   

    这个是Stream是自定义的XStream,只能按照字节来读,所以需要重写一个Readline方法
    其实就是在流中查找换行符,遇到换行就转换成字符串输出。反编译的代码可以供参考
      

  2.   

    使用内存映射文件http://topic.csdn.net/u/20111106/13/0c699f1c-6f6b-4ada-8850-859a1c41ea81.html
      

  3.   

    自己将传入流转为streamreader不就可以了。
     Stream stream = GetStream();
                new StreamReader(stream).ReadLine();
      

  4.   

    StreamReader也有使用一个Stream的重载:Stream stream = ...;
    string line;
    using (StreamReader sr = new StreamReader(stream))
    {
        while ((line = sr.ReadLine()) != null)
        {
             //...          
        }
    }
      

  5.   

    问题是流不是stream类型,只能以字节形式来读。不然就不会有这个问题了
      

  6.   

    流是经过压缩过的,所以 new StreamReader(stream) 这里StreamReader不认压缩过的stream
      

  7.   

    写个伪代码就是先读如一块内存,然后不断地read一个字节一个字节的读取,直到ascii码是13 10为止,然后把内容保存到字符串里,如果读如的内存没有,就再读入一块,直到读到回车换行为止