4
我正在使用AsynkTast
下载一组CSV行,并且想要跟踪总共读取了多少字节。BufferedReader,读多少个字节?
while ((string = bufferedReader.readLine()) != null)
{
bytesRead += ?;
}
我将如何访问行总字节数?
对不起,如果这个问题是重复的,但我似乎只能找到问题的答案是关于OutputStream
。
取决于你想如何准确是。如果要包含行分隔符,则在读取每行之后,在系统属性line.separator中添加字节数。文件末尾还有一些不确定性:那里可能没有分隔符。如果你想要绝对精确,你可以重载BufferedReader并计算那里的字节数。 –
另请注意,String.getBytes()方法[“使用平台的默认字符集将此字符串编码为一系列字节,并将结果存储到新的字节数组中”](https://docs.oracle.com/ javase/8/docs/api/java/lang/String.html#getBytes--) - 所以如果原始InputStream使用不同的编码,返回值可能包含与BufferedReader读取的字节序列不同的字节序列。 – megaflop
另请参阅此答案:http://stackoverflow.com/a/15093285/889583 – megaflop