如何输出进度指示器而不是实际的文件内容

时间:2016-04-25 20:18:14

标签: java

我有以下方法读取文本文件:

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%

任何提示都表示赞赏。

1 个答案:

答案 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ó"); } } 。但为此你需要几件事。

  1. 使用System.out.println对象获取文件大小,即

    文件f =新文件(路径); double fileSize = f.length(); br = new BufferedReader(new FileReader(path));

  2. 现在在File循环中。每当你读到字符串,你就必须做这样的事情

    int percentRead = 0

    while((sCurrentLine = br.readLine())!= null){

    while

    }

  3. 未对其进行测试,因此您可能需要对其进行调整