libraryDB, libraryItems 및 libraryGUI의 세 클래스가 있습니다. libraryDB()는 본질적으로 책 바코드/ISBN과 같은 키가있는 해시 맵이며 값은 libraryItems로 구성되어 있으므로 두 개의 String 매개 변수 인 Title과 Author를 사용합니다.GUI를 통한 Java 파일 출력/입력
저장하려면 GUI에 JFileChooser가 모두 설정되어 있지만 save() 및 open() 메서드는 문제가 있습니다. 나는 그것이 저장 될 때마다 각각의 libraryDB 객체가 자신의 3 줄 (바코드, 제목, 저자 각각에 대해 각각 하나씩)을 갖도록 설정하기를 원한다. 나는 여기에 내가 그것에 대해 쓴 코드는, 각 개별 라인을 읽어에서 다시로드 시도 :
//Suppose to construct a LibraryDB by reading one from a previously-saved file.
public LibraryDB (File file) throws IOException {
Scanner readFile = new Scanner(file);
int barcode;
String title;
String author;
while (readFile.hasNext()){
barcode = Integer.parseInt(readFile.nextLine());
title = readFile.nextLine();
author = readFile.nextLine();
LibraryItem authorTitleValues = new LibraryItem(title,author);
this.libraryItems.put(barcode, authorTitleValues);
}
}
//Trying to save to text file, where for each object n there are 3n lines.
public void save(File file) throws IOException {
PrintStream writer = new PrintStream(file);
for (Iterator<Integer> localIterator = libraryItems.keySet().iterator();
localIterator.hasNext();){
int barcode = ((Integer)localIterator.next()).intValue();
writer.println(barcode);
writer.println((libraryItems.get(Integer.valueOf(barcode))).getTitle());
writer.println((libraryItems.get(Integer.valueOf(barcode))).getAuthor());
}
}
당신이 성공적으로 열기/저장 할 것 인 나에게 도움이됩니다 제공 할 수있는 어떤 도움이나 통찰력 많이 감사하겠습니다! 감사!
더 자세히 설명하면 libraryDB를 파일에 저장할 때마다 나중에 되돌아 가서 파일을 열 수 없습니까?
정확한 문제는 무엇인가요? – Joel
파일을 저장할 때 다시 돌아가서 다시 열 수 없으므로 더 명확히하지 않아서 미안합니다. 아마 어딘가에 약간의 호환이있을 수 있습니까? –
파일이 제대로 직렬화되었는지 확인 했습니까? 그것이 있어야하는 행이 있습니까? – bezmax