我正在为我的一个课程开展一个项目。而程序本身并不是问题,而是它将被测试的方式。我没有使用命令行的经验,这就是我的程序将被测试的方式。
我创建了一个山密码程序。输入是密钥文件和纯文本文件。 命令行条目将如下所示。
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.");
}
答案 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