上記の例では、先頭のメソッド(initialiseGame)では、最初の引数が "DEFAULT"の場合、boardDEFAULTという名前のファイルを作成しました。今度は、そのメソッドを下のメソッド(printBoard)で呼び出して、topメソッドで設定されたout.println行を読み込みたいとします。ターンで(別のメソッドで作成された)ファイルを後のメソッドに呼び出す
import java.io.IOException;
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
public class Example {
public static void initialiseGame(String configFileName, String...args) throws IOException {
configFileName = args[0];
if ("DEFAULT".equals(configFileName)) {
try {
File boardDEFAULT = new File("easy_board.txt");
PrintWriter output = new PrintWriter(boardDEFAULT);
output.println("######");
output.println("#@ &2#");
output.println("## ##");
output.close();
} catch (IOException ex) {
System.out.println("Error");
return; }
}
}
public static void printBoard() {
if ("DEFAULT".equals(boardDEFAULT)) {
String [][] DefaultBoardArray = new String [6][3];
DefaultBoardArray[0][0] = "#";
DefaultBoardArray[1][0] = "#";
DefaultBoardArray[2][0] = "#";
DefaultBoardArray[3][0] = "#";
DefaultBoardArray[4][0] = "#";
DefaultBoardArray[5][0] = "#";
DefaultBoardArray[0][1] = "#";
DefaultBoardArray[1][1] = "@";
DefaultBoardArray[2][1] = " ";
DefaultBoardArray[3][1] = "&";
DefaultBoardArray[4][1] = "2";
DefaultBoardArray[5][1] = "#";
DefaultBoardArray[0][2] = "#";
DefaultBoardArray[1][2] = "#";
DefaultBoardArray[2][2] = " ";
DefaultBoardArray[3][2] = "#";
DefaultBoardArray[4][2] = "#";
DefaultBoardArray[5][2] = "#";
for (int i=0; i<7; i++) {
for (int j=0; j<3; j++) {
System.out.print(DefaultBoardArray[i][j] + " ");
}
}
}
}
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Error: Too few arguments given. Expected 1 argument, found "+args.length+".");
System.out.println("Usage: MazeGame [<game configuration file>|DEFAULT]");
return;
}
if (args.length >1) {
System.out.println("Error: Too many arguments given. Expected 1 argument, found "+args.length+".");
System.out.println("Usage: MazeGame [<game configuration file>|DEFAULT]");
return;
}
Scanner keyboard = new Scanner (System.in);
String [] Command = new String [2];
Command[0] = keyboard.nextLine();
while (!("help".equalsIgnoreCase(Command[0])) || !("board".equalsIgnoreCase(Command[0])) || !("status".equalsIgnoreCase(Command[0])) || !("left".equalsIgnoreCase(Command[0])) || !("right".equalsIgnoreCase(Command[0])) || !("up".equalsIgnoreCase(Command[0])) || !("down".equalsIgnoreCase(Command[0])) || !("save <file>".equalsIgnoreCase(Command[0]))) {
if (!("help".equalsIgnoreCase(Command[1])) || !("board".equalsIgnoreCase(Command[1])) || !("status".equalsIgnoreCase(Command[1])) || !("left".equalsIgnoreCase(Command[1])) || !("right".equalsIgnoreCase(Command[1])) || !("up".equalsIgnoreCase(Command[1])) || !("down".equalsIgnoreCase(Command[1])) || !("save <file>".equalsIgnoreCase(Command[1]))) {
System.out.println("Error: Could not file command '"+Command[1]+"'.");
} else {
System.out.println("Error: Could not file command '"+Command[0]+"'."); }
System.out.println("To find the list of valid commands, please type 'help'.");
Command[1] = keyboard.nextLine();
if (("help".equalsIgnoreCase(Command[1])) || ("board".equalsIgnoreCase(Command[1])) || ("status".equalsIgnoreCase(Command[1])) || ("left".equalsIgnoreCase(Command[1])) || ("right".equalsIgnoreCase(Command[1])) || ("up".equalsIgnoreCase(Command[1])) || ("down".equalsIgnoreCase(Command[1])) || ("save <file>".equalsIgnoreCase(Command[1]))) {
break;
}
}
if (("board".equalsIgnoreCase(Command[0])) || ("board".equalsIgnoreCase(Command[1]))) {
printBoard();
}
}
}
私はboardDEFAULTでハットポインティングで
error: cannot find symbol - if ("DEFAULT".equals(boardDEFAULT))
を言って、エラーを取得します。
私はこれを達成する方法がわかりません。ファイルの配列を作成しようとしましたが、それはより多くの問題を引き起こしました。私は方法で初心者のビットです、私はこの初歩的な質問をお詫び申し上げます。
ありがとうJavaのドキュメントを見ていきます。 –