現在、このプログラムをコマンドラインでボートの名前を入力できるように設定しています。つまり、 C:\java Proj3 "Boat 1" "Boat 2" "Boat 3" に基づいてコマンドラインに結果を出力します。仕様。代わりに、コマンドライン C:\java Proj3 "C:\class\Java\boatnames.txt" "C:\class\Java\results.txt" に次のように入力して、引数が指定されたファイルから取得されるようにします結果は、画面ではなくテキスト ファイルに出力されます。println を printf に変更しましたが、ここまでです。これで失敗した他のすべての試みを削除しました。プライベート Formatter x; を持つ createfile.java という別のクラスを作成してみました。いくつかのopenFile、closeFile、およびaddRecordsメソッドがありますが、出力をそこに移動してaddRecordsに入れようとすると、うまくいきません.
これが私のコードです(コマンドラインの引数をコマンドラインのtxtファイルの引数に置き換えるだけなので、他のクラスは含めませんでした):
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();
}
}
}