我正在使用InputStream
缓冲区,如下所示。我想知道它什么时候实际缓冲(填充数据)...我正在用互联网流喂它。我在Log
之前和之后放了len = in.read(buffer)
,但它们是在同一时间记录的(所以这个过程不在这里)。
conn = new URL(StringUrls[0]).openConnection();
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
in = conn.getInputStream();
int len=-1;
buffer = new byte[1024];
Log.v("buffer", "buffering...");
len = in.read(buffer);
Log.v("buffer", "buffered");
答案 0 :(得分:2)
http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read(byte[])州:
This method blocks until input data is available, end of file is detected, or an exception is thrown.
换句话说,当它有要提交的数据时,它正在被填充。
打开连接时,可以读取数据。这就是InputStream
不必等待任何事情的原因。