在命令行中监视输入流的进度

时间:2014-03-11 17:12:37

标签: java inputstream progress

我正在从互联网上读取一个大文本文件到字符串中,我希望显示某种进展。通常我会使用 ProgressMonitorInputStream ,但是这个程序严格在命令行中运行,因此这不是一个选项。有没有简单的方法来获得某种百分比,剩余字节或任何其他类型的反馈?这是我的代码:

URL inUrl = new URL(*URL to be red*);
InputStream inStream=inUrl.openStream();
BufferedReader in=new BufferedReader(new InputStreamReader(inStream,Charset.forName("UTF-8")));
while(in.ready()){

    string=string+in.readLine();

}
in.close();

1 个答案:

答案 0 :(得分:0)

首先使用File.length方法获取文件大小。或者HttpConnection.getContentLength(),如果是基于Internet的资源。

在while循环中,百分比为

while(in.ready()){
    string = string +in.readLine();
    percentage = (string.length() / fileLength) * 100;
}

顺便说一句,使用

并不是一个好习惯
string + in.readLine()

使用StringBuffer进行此连接。