によって既に送信されたデータのサイズを表示しようとしましたOutputStreamWriter
が、write
方法は非同期のようなものであるようです。つまり、ファイルが 60M でアップロード速度が 200K/s の場合、出力には「Data sent: 61210K」の 1 行のみが表示されます。 " (または任意の大きな数) であるはずの (1 秒あたりの小さな数) の代わりに
私は何か見落としてますか?
コード片:
Writer writer = new OutputStreamWriter(out, POST_ENCODING);
char[] buf = new char[1024];
int read = 0;
long bytes = 0;
while ((read = reader.read(buf)) >= 0) {
bytes += read;
if (System.currentTimeMillis() - lastMsgTimeStamp > 1000) {
lastMsgTimeStamp = System.currentTimeMillis();
System.out.println("Data sent: " + (bytes / 1024) + " K");
}
writer.write(buf, 0, read);
}
writer.flush();