0

スレッドごとにファイルを処理するコードがあります。私の質問は、ファイル名を入力して処理するにはどうすればよいですか?

引数コマンド ラインとは何ですか。また、どのように対処すればよいですか? ここにコードを入力してください

import java.io.*;
import java.security.*;

public class DigestThread extends Thread {
    private File input;

    public DigestThread(File input) {
        this.input = input;
    }

    public void run() {
        try {
            FileInputStream in = new FileInputStream(input);
            MessageDigest sha = MessageDigest.getInstance("SHA");
            DigestInputStream din = new DigestInputStream(in, sha);
            int b;
            while ((b = din.read()) != -1)
                ;
            din.close();
            byte[] digest = sha.digest();
            StringBuffer result = new StringBuffer(input.toString());
            result.append(": ");
            for (int i = 0; i < digest.length; i++) {
                result.append(digest[i] + " ");
            }
            System.out.println(result);
        }
        catch (IOException e) {
            System.err.println(e);
        }
        catch (NoSuchAlgorithmException e) {
            System.err.println(e);
        }
    }

    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            File f = new File(args[i]);
            Thread t = new DigestThread(f);
            t.start();
        }
    }

}

4

3 に答える 3

0

ファイルの名前をコマンドライン引数としてJavaプログラムに送信できます。

例えば、

CMD.EXEの場合:java.exe環境パス変数にあると仮定しますPATH

X:\Path\to\your\dotClass\File> java DigestThread path/to/your/filename.ext

またはBASHの場合:java環境パス変数にあると仮定しますPATH

/path/to/your/dotClass/file $ java DigestThread path/to/your/filename.ext

また、Netbeansを使用している場合は、コマンドライン引数を使用してプログラムを起動する方法について、http: //netbeanside61.blogspot.in/2009/02/using-command-line-arguments-in.htmlを参照してください。

于 2013-02-05T11:39:28.990 に答える
0

これを試して

public void setFile(File f){
input = f;
}
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
JFileChooser fc = new JFileChooser();
setFile(fc.getSelectedFile());
Thread t = new DigestThread(f);
t.start( );
}
}
于 2013-02-05T11:34:51.107 に答える
0

コマンドライン:

Java DigestThread ファイル名1 ファイル名2

NetBeans では:

[プロジェクト] に移動: [プロパティ] --> [実行] --> [引数]の横に引数を入力します。

実行| メインプロジェクトを実行

于 2013-02-05T11:37:00.337 に答える