从命令行java编译并运行

时间:2016-02-27 23:29:22

标签: java file-io command-line

我正在为我的一个课程开展一个项目。而程序本身并不是问题,而是它将被测试的方式。我没有使用命令行的经验,这就是我的程序将被测试的方式。

我创建了一个山密码程序。输入是密钥文件和纯文本文件。 命令行条目将如下所示。

prompt> java hillcipher spr16Key4.txt hill-16spring-01

我该怎么做?我可以修改此代码,以便它可以使用上面的命令吗?

try{ 
        //open plaintext file
        URL url = getClass().getResource("input.txt"); //.getResource(args[0]);?
        File file = new File(url.getPath());
        //used to move data on the encryption path
        sc  = new Scanner(file);

        }catch(Exception e){

        System.out.println("file not found.");

    }

2 个答案:

答案 0 :(得分:0)

该计划需要进行一些小的改动:

  • <div>仅扫描类路径中的文件。要读取外部文件,我们可以使用带有字符串参数的文件构造函数。例如。 class.getResource()
  • 运行程序时的参数需要更改为完整路径(如File file = new File(args[0]);),以便程序能够读取文件,即使它们与类文件不在同一目录中。

答案 1 :(得分:0)

您可以创建一个处理文件内容的常用方法。为此,请执行以下操作:

public class HillCipher {
    public static void main(String[] args) {
        String keyFile = args[0];
        String plainFile = args[1];

        // Read your key file
        processFile(keyFile);

        // Read plain file
        processFile(plainFile);
    }

    private static void processFile(String filePath) {
        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            String line = br.readLine();

            while (line != null) {
                // do what you need with the file contents
                System.out.println(line);
                line = br.readLine();
            }
        }
    }
}

为了运行它,只需执行您提到的内容,并考虑文件路径:

>java HillCipher key_file.txt plain_file.txt