2016-04-24 10 views
1

私はdataInputStream.readFullyを使用してファイルを受信して​​いますので、 私は透過の進行状況を示したいと思います。 readFullyメソッドの進捗状況を知ることはできますか? ありがとうございます。progress of dataOutputStream.readFully

+0

いいえ進行状況を追跡するには、実行する必要があります。ソースを見て:http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/io/DataInputStream.java#l172 – Andreas

答えて

1

いいえ - 全体のポイントは、読みやすくするための単一の呼び出しだということです。

さらに進んで(たとえば進行状況バーを更新する場合)、すべてのデータを読むまでループ内でInputStream.read(byte[], int, int)を一度に読み取ることができます。たとえば:

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のように、しかし、ループの進捗表示です。

+0

@アンドレアス:はい、ポイント自分自身をルーピングすることで、OPが進捗インジケータを更新できるようになります。 –

+0

@アンドレアス:そうです。完了しました。 –

+0

ありがとうございます!これはとても便利です –