【问题标题】:Android byte stream copy exact number of bytes using bufferAndroid字节流使用缓冲区复制确切的字节数
【发布时间】:2016-08-22 03:41:09
【问题描述】:

我需要将确切数量的字节从 InputStream 复制到 OutputStream。一种方法是一次读取一个字节并在达到数字时停止,但性能不是很好。如果我使用字节数组缓冲区一次复制多个字节,则从 InputStream 中读取的字节数可能会超过确切指定的数量(如果所需的数量不能被缓冲区大小整除)。数据量非常大,所以我不能只使用单字节数组缓冲区并将所有数据读入其中。

有没有办法有效地将准确数量的数据从一个流复制到另一个流?

任何帮助将不胜感激!

【问题讨论】:

    标签: android stream buffer


    【解决方案1】:

    这应该可以工作

    int bytesToRead = ....
    byte [] b = new byte[1024];
    while (bytesToRead > 0)
    {
        int read = is.read(b, 0, Math.min(bytesToRead, 1024));
        if (read < 0)
            break;
        bytesToRead -= read;
        os.write(b, 0, read);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2011-07-09
      • 1970-01-01
      相关资源
      最近更新 更多