java – 在完成读取之前获取加载到BufferReader的总字节数

我在
java中使用HttpURLConnection读取一个大的xml文件,如下所示.

StringBuilder responseBuilder = new StringBuilder(1024);
char[] buffer = new char[4096];

BufferedReader  br = new BufferedReader(new InputStreamReader(((InputStream)new DataInputStream(new GZIPInputStream(connection.getInputStream()))),"UTF-8"));

int n = 0;
while(n>=0){
    n=br.read(buffer,0,buffer.length);
    if(n>0) responseBuilder.append(buffer,0,n);

}

有没有办法获得加载到BufferedReader的总字节数,然后通过char / line by line / char block by char block读取char.

最佳答案 听起来你正试图找出BufferedReader的大小而不消耗它.

您可以尝试使用HttpURLConnection的getContentLength()方法.这可能有效,也可能无效.它当然不会做的是给你流的未压缩大小.如果你追求的是后者,你几乎肯定是运气不好.

如果我误解了你的问题,请澄清你所追求的是什么.

点赞