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

尝试这个

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 回答
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 回答