溫馨提示×

java下載文件如何實(shí)現(xiàn)進(jìn)度條顯示

小樊
319
2024-07-02 19:09:13
欄目: 編程語言

要在Java中實(shí)現(xiàn)下載文件并顯示下載進(jìn)度條,可以使用Java的URLConnection類來下載文件并監(jiān)聽下載進(jìn)度。以下是一個簡單的示例代碼:

import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class FileDownloader {

    public static void main(String[] args) {
        String fileUrl = "http://example.com/file.txt";
        String savePath = "file.txt";
        
        try {
            URL url = new URL(fileUrl);
            URLConnection connection = url.openConnection();
            int fileSize = connection.getContentLength();
            
            InputStream inputStream = connection.getInputStream();
            FileOutputStream outputStream = new FileOutputStream(savePath);
            
            byte[] buffer = new byte[1024];
            int bytesRead;
            int totalBytesRead = 0;
            
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
                totalBytesRead += bytesRead;
                
                int percentage = (int) ((totalBytesRead / (float) fileSize) * 100);
                System.out.println("Downloaded " + percentage + "%");
            }
            
            inputStream.close();
            outputStream.close();
            
            System.out.println("File downloaded successfully!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

在上面的代碼中,我們首先獲取文件的大小,然后創(chuàng)建一個輸入流來讀取文件內(nèi)容,并創(chuàng)建一個輸出流來將文件內(nèi)容寫入到本地文件。在讀取文件內(nèi)容的過程中,我們計算已下載的文件大小占總文件大小的百分比,并將進(jìn)度顯示在控制臺上。

請注意,這只是一個簡單的示例代碼,實(shí)際場景中可能需要更復(fù)雜的邏輯來處理異常、顯示進(jìn)度條等。

0