我正在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。
答案 0 :(得分:2)
听起来你试图找出BufferedReader
的大小而不消耗它。
您可以尝试使用HttpURLConnection
的{{3}}方法。这可能有效,也可能无效。它当然不会做的是给你未压缩的流的大小。如果你追求的是后者,那几乎肯定是运气不好。
如果我误解了你的问题,请澄清你所追求的是什么。
答案 1 :(得分:0)
如果已设置内容长度标题,则可以通过该连接访问该标题。但是如果内容已被压缩,那么它可能没有被设置,或者可能会给出压缩的大小,我假设你正在寻找未压缩的大小。