zoukankan      html  css  js  c++  java
  • Stream Read

    看过很多回 关于 stream read(byte[] buffer, int offset, int count)

    有个问题一直没注意过

    offset + count 不能超过 buffer的长度

    所以

    FileStream stream = new FileStream(txtAttachments.Text, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                byte[] bytes = new byte[stream.Length];
    
                int numRead = 0;
                int count = 50 > bytes.Length ? bytes.Length : 50;
                int numToRead = bytes.Length;
                int offset = 0;
                while (numToRead > 0)
                {
                    numRead = stream.Read(bytes, offset, count);
                    if (numRead == 0)
                        break;
                    numToRead = numToRead - numRead;
                    offset = offset + numRead;
    
                    if (numToRead < count)
                        count = numToRead;
                }
                
                stream.Close();
    

    有个问题没想明白,如果文件长度1000, 我请求900,难道它会只返回700?

    Always.Net
  • 相关阅读:
    Oracle expdp 多表导出处理
    字符串
    Java设计模式
    多线程
    Java面向对象练习
    Java面向对象基础
    Java基础算法
    Java常识
    DOS基础命令(1)
    Java基础练习
  • 原文地址:https://www.cnblogs.com/alwaysdotnet/p/3924332.html
Copyright © 2011-2022 走看看