これは宿題です。「input.txt」ファイルを読み取り、挨拶を何回印刷するかを確認するプログラムを作成する必要があります (例: Donald Duck, 4 なので、Hello Donald Duck を 4 回印刷します)。 m は、あいさつ文を「output.txt」というテキスト ファイルに出力することです。何らかの理由で、input.txt のすべての行ではなく、最後の行のあいさつ文のみを出力します。
import java.util.*;
import java.io.*;
public class Driver0 {
public static void main (String [] args) {
Scanner userInput = new Scanner(System.in);
System.out.println("Would you like the output to be written to a file?");
Scanner read;
String input = userInput.nextLine(); //user input
if(input.equals("yes")) {
System.out.println("Writing to \"output.txt\" now..");
}
else {
System.out.println("Printing to screen:");
}
try {
read = new Scanner(new File("input.txt")); //scanner reading file
}
catch (FileNotFoundException e){
System.out.println("File not found.");
return;
}
while(read.hasNextLine()) {
String newInput = read.nextLine();
String [] inputArray = newInput.split(","); //spliting
int num = 0;
num = Integer.parseInt(inputArray[2].trim());
for(int i = 0; i < num; i++) {
if(input.equals("yes")) { //writing to file
Driver0.outputting(inputArray);
}
else { //writing to screen
System.out.println("Hello" + inputArray[1] + inputArray[0]);
}
}
}
}
public static void outputting (String [] inputArray) {
PrintWriter output = null;
String fileName = "output.txt";
try {
output = new PrintWriter(new FileWriter(fileName));
}
catch(IOException error){
System.out.println("Sorry, can't open for writing.");
return;
}
output.println("Hello" + inputArray[1] + inputArray[0]);
output.close();
}
}
私の問題は、おそらく出力メソッド内、またはその横にファイルへの書き込みを示すコメントがある場所にあります