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

Java 在命令行中监视输入流的进度,java,inputstream,progress,Java,Inputstream,Progress,我正在从互联网上把一个大文本文件读入字符串,我想显示一些进展。通常我会使用ProgressMonitorInputStream,但是这个程序严格地在命令行中运行,所以这不是一个选项。是否有任何简单的方法可以获得某种百分比、剩余字节或任何其他类型的反馈?这是我的代码: URL inUrl = new URL(*URL to be red*); InputStream inStream=inUrl.openStream(); BufferedReader in=new BufferedReader(

我正在从互联网上把一个大文本文件读入字符串,我想显示一些进展。通常我会使用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();

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

在while循环中,百分比为

while(in.ready()){
    string = string +in.readLine();
    percentage = (string.length() / fileLength) * 100;
}
顺便说一下,这不是一个好的做法

string + in.readLine()

使用StringBuffer进行连接。

另外,我非常感谢您指出StringBuffer对象。它将程序的运行时间从10分钟缩短到10秒。