2

Javaコードの私の部分は以下です。

while (status == DOWNLOADING) {
    /* Size buffer according to how much of the
       file is left to download. */
            byte buffer[];
            if (size - downloaded > MAX_BUFFER_SIZE) {
                buffer = new byte[MAX_BUFFER_SIZE];
            } else {
                buffer = new byte[size - downloaded];
            }

            // Read from server into buffer.
            int read = stream.read(buffer);
            if (read == -1){
                System.out.println("File was downloaded");
                break;
            }

            // Write buffer to file.
            file.write(buffer, 0, read);
            downloaded += read;

        }

  /* Change status to complete if this point was
     reached because downloading has finished. */
        if (status == DOWNLOADING) {
            status = COMPLETE;

        }

コンソールの進行状況ラインを更新して、ファイルのダウンロードの進行状況をパーセンテージで表示したいと考えています。助けてください。ありがとう。

4

4 に答える 4

3

これは単純な「進行状況バー」の概念です。

基本的に\b、新しいプログレスバーを出力する前に、以前にコンソールに出力された文字をバックスペースするために文字を使用します...

public class TextProgress {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("");
        printProgress(0);
        try {
            for (int index = 0; index < 101; index++) {
                printProgress(index);
                Thread.sleep(125);
            }
        } catch (InterruptedException ex) {
            Logger.getLogger(TextProgress.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static void printProgress(int index) {

        int dotCount = (int) (index / 10f);
        StringBuilder sb = new StringBuilder("[");
        for (int count = 0; count < dotCount; count++) {
            sb.append(".");
        }
        for (int count = dotCount; count < 10; count++) {
            sb.append(" ");
        }
        sb.append("]");
        for (int count = 0; count < sb.length(); count++) {
            System.out.print("\b");
        }
        System.out.print(sb.toString());

    }
}

Java のテキスト コンポーネントは文字をサポートしていないため、ほとんどの IDE 内からは機能しません\b。ターミナル/コンソールから実行する必要があります。

于 2013-04-06T03:44:38.950 に答える