0
저는 Java 초보자이고 배열 목록의 이진 파일 입력 및 출력을 사용하는 데 문제가 있습니다. 배열 목록의 데이터를 파일에 저장하고 콘솔에 표시하려고합니다. 여기 내 코드 중 일부가 실행되지만 잘못된 정보가 표시되고 경고 메시지가 표시됩니다. 이 문제의 원인에 대한 도움이 필요하십니까? 감사!Java - 배열 목록이있는 이진 파일
public class Towers {
public static ArrayList<String> allMoves= new ArrayList<String>();
static{
allMoves.add("These Are the Disk Moves:");
}
public static void move(final int aNumDisks){
move(aNumDisks, 1, 2, 3);
String fileName = "solution.dat";
try{
ObjectOutputStream outputStream =
new ObjectOutputStream(
new FileOutputStream (fileName));
outputStream.writeObject(allMoves);
outputStream.close();
}
catch (IOException e){
System.out.println("Error writing to file " + fileName);
System.exit(0);
}
}
출력 파일을 콘솔에 표시합니다.
=== 0 disks move(int) ===
These Are the Disk Moves:
=== 0 disks move(,,) ===
These Are the Disk Moves:
=== 1 disk move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3
=== 2 disks ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3
=== 2 disks move(2,3,2,1) ===
These Are the Disk Moves:
Move disk from 3 to 2
Move disk from 3 to 1
Move disk from 2 to 1
=== 3 disks move(3) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3
을하지만 메신저이 점점 :
public class TReporter {
public static void reportSol(){
String fileName = "solution.dat";
ArrayList<String> allMovesA = null;
try{
ObjectInputStream inputStream =
new ObjectInputStream(
new FileInputStream (fileName));
allMovesA = (ArrayList<String>)inputStream.readObject(); //WARNING!
//Type safety: Unchecked cast from Object to ArrayList<String>
inputStream.close();
}
catch (Exception e){
System.out.println("Problem reading the file " + fileName);
System.exit(0);
}
for (int i = 0; i < allMovesA.size(); ++i){
System.out.println(allMovesA.get(i));
}
그것은이 같은 것을 표시해야 당신이 얻을
=== 0 disks move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3
=== 0 disks move(,,) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3
=== 1 disk move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3
=== 2 disks ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3
=== 2 disks move(2,3,2,1) ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3
=== 3 disks move(3) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3
무엇을 표시 하시겠습니까? 현재보고있는 내용은 무엇입니까? 무슨 경고하고있어? 이것은 사람들이 왜 프로그램이 작동하지 않는지 이해할 수 있도록 게시해야하는 사항입니다. –
숙제입니까? 그렇다면 태그를 붙입니다. 메인 메서드 나 이동 (int, int, int, int)이 표시되지 않습니다. 그들을 게시하십시오. –