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

Java 如何输出进度指示器而不是实际的文件内容,java,Java,我有以下方法读取文本文件: public static void readFile(String path) { BufferedReader br = null; try { String sCurrentLine; br = new BufferedReader(new FileReader(path)); while ((sCurrentLine = br.readLine()) != null) {

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

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%

任何暗示都将不胜感激

您必须随进度更改
系统.out.println
。但要做到这一点,你需要做几件事

  • 使用
    文件
    对象获取文件大小,即

    文件f=新文件(路径); double fileSize=f.length(); br=新的BufferedReader(新的文件读取器(路径))

  • 现在进入
    while
    循环。每次你读字符串的时候,你都必须这样做

    int percentRead=0

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

    double bytesRead+=(sCurrentLine.getBytes().length);
    int newPercentRead=(int)((字节读取/文件大小)*100);
    
    while(percentRead您必须随着进度更改
    系统.out.println
    。但要做到这一点,您需要做几件事

  • 使用
    文件
    对象获取文件大小,即

    文件f=新文件(路径); double fileSize=f.length(); br=新的BufferedReader(新的文件读取器(路径))

  • 现在,在
    while
    循环中。每次读取字符串时,都必须执行以下操作

    int percentRead=0

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

    double bytesRead+=(sCurrentLine.getBytes().length);
    int newPercentRead=(int)((字节读取/文件大小)*100);
    
    也许能帮上忙?也许能帮上忙?谢谢你…我会试试的谢谢你…我会试试的
    double bytesRead += (sCurrentLine.getBytes().length);
    
    int newPercentRead = (int)((bytesRead/fileSize) * 100);
    
    while (percentRead <= newPercentRead){
    
        System.out.print("#");
    
        percentRead++;
    
    }