一個(gè)簡單的Java文件讀取的進(jìn)度條

小云
96
2023-08-16 14:08:44
欄目: 編程語言

以下是一個(gè)簡單的Java文件讀取的進(jìn)度條示例:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class FileProgressBar {
public static void main(String[] args) {
String filePath = "path_to_your_file";
try (InputStream inputStream = new FileInputStream(filePath)) {
long fileSize = inputStream.available();
long bytesRead = 0;
byte[] buffer = new byte[1024];
int read;
while ((read = inputStream.read(buffer)) != -1) {
bytesRead += read;
printProgressBar(bytesRead, fileSize);
}
System.out.println("\nFile read successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void printProgressBar(long bytesRead, long fileSize) {
int progress = (int) (bytesRead * 100 / fileSize);
String progressBar = "[";
int barWidth = 50;
int filledWidth = (int) (barWidth * progress / 100.0);
for (int i = 0; i < barWidth; i++) {
if (i < filledWidth) {
progressBar += "=";
} else {
progressBar += " ";
}
}
progressBar += "] " + progress + "%";
System.out.print("\r" + progressBar);
}
}

在上面的示例中,我們使用FileInputStream來讀取文件,并使用InputStream.available()方法獲取文件的大小。然后,在每次讀取buffer時(shí),我們更新已讀取的字節(jié)數(shù),并通過printProgressBar方法打印進(jìn)度條。

printProgressBar方法使用\r來在控制臺(tái)上覆蓋上一行的輸出,以實(shí)現(xiàn)動(dòng)態(tài)更新進(jìn)度條的效果。進(jìn)度條的長度為50個(gè)字符,根據(jù)已讀取的字節(jié)數(shù)和文件大小的比例計(jì)算填充的寬度,并將進(jìn)度以百分比形式顯示。

注意:在使用這個(gè)示例之前,你需要將path_to_your_file替換為你要讀取的文件的路徑。

0