我有以下方法读取文本文件:
public static void readFile(String path) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(path));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine); // Progress indicator!
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
我的文件非常大~700MB,我希望能够打印进度指示器或百分比,而不是在控制台上打印真实看起来不太好的实际文件。可能是这样的东西:
========================================================== 100%
任何提示都表示赞赏。
答案 0 :(得分:2)
您必须随着进度更改class Thread2 implements Runnable {
private DifferentThreadJavaFXMinimal d;
Thread2(DifferentThreadJavaFXMinimal dt){
d=dt;
}
@Override
public void run() {
for (int i=0;i<4;i++) {
final int value = i ;
Platform.runLater(() -> d.addElement(value));
// presumably in real life some kind of blocking code here....
}
System.out.println("Hahó");
}
}
。但为此你需要几件事。
使用System.out.println
对象获取文件大小,即
文件f =新文件(路径); double fileSize = f.length(); br = new BufferedReader(new FileReader(path));
现在在File
循环中。每当你读到字符串,你就必须做这样的事情
int percentRead = 0
while((sCurrentLine = br.readLine())!= null){
while
}
未对其进行测试,因此您可能需要对其进行调整。