我正在使用 dataInputStream.readFully 接收一个文件,所以 我想展示传输的进度。 有没有可能知道readFully方法的进度? 谢谢。
最佳答案
不 - 重点是它是一个单一的调用,以使其更易于阅读。
如果您想逐渐阅读更多内容(例如更新进度条),您可以在循环中使用 InputStream.read(byte[], int, int)
一次读取一个 block 直到你读完所有数据。例如:
byte[] data = new byte[bytesToRead];
int offset = 0;
int bytesRead;
while ((bytesRead = stream.read(data, offset, data.length - offset)) > -1) {
offset += bytesRead;
// Update progress indicator
}
这就像 JDK 8 code for readFully
,但在循环中有进度指示。
关于java - dataOutputStream.readFully 的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824799/