现在我已经设置了这个程序,我可以在命令行中输入船只的名称,即 C:\java Proj3 "Boat 1" "Boat 2" "Boat 3" 并将结果打印到命令行基于眼镜。相反,我想在命令行 C:\java Proj3 "C:\class\Java\boatnames.txt" "C:\class\Java\results.txt" 中输入类似这样的内容,因此参数来自指定的文件结果打印在文本文件中,而不是在屏幕上。我将 println 更改为 printf,但到目前为止就是这样。我删除了所有其他失败的尝试。我什至尝试创建另一个名为 createfile.java 的类,它具有私有 Formatter x;和一些 openFile、closeFile 和 addRecords 方法,但是如果我将输出移到那里并尝试将其放入 addRecords 中,它不会
这是我的代码(我没有包含其他类,因为我需要做的就是将命令行中的 args 替换为命令行中 txt 文件中的 args):
import java.util.*;
import java.io.*;
import java.lang.*;
import java.swing.*;
public class Proj3 {
public static void main(String args[]) {
Boat[] Boats;
char firstChar;
char secondChar;
int i;
Boats = new Boat[args.length];
for (i = 0; i < args.length; i++) {
firstChar = args[i].toUpperCase().charAt(0);
secondChar = args[i].toUpperCase().charAt(1);
if ((firstChar == 'B') || (firstChar == 'C') || (firstChar == 'N')) {
Boats[i] = new SailBoat();
} else {
Boats[i] = new RaceBoat();
}
Boats[i].setName(args[i]);
if ((secondChar == 'A') || (secondChar == 'E')) {
Boats[i].goFast();
} else {
Boats[i].goSlow();
}
}
for (i = 0; i < args.length; i++) {
System.out.printf("Boat number " + (i + 1) + " - \n");
System.out.printf(" ");
Boats[i].printBoat();
System.out.printf(" ");
Boats[i].whatIsBoatState();
}
}
}