У меня есть три класса libraryDB, libraryItems и libraryGUI. libraryDB () - это, по сути, хэш-карта с ключами в виде книжных штрих-кодов / ISBN, а значениями являются libraryItems, которые состоят из двух строковых параметров и поэтому принимают их.
У меня есть 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());
}
}
Любая помощь или понимание, которое вы можете предоставить, которые помогут мне в успешном сохранении / открытии, будут высоко цениться! Спасибо!
Больше подробностей, когда я сохраняю библиотеку DB в файл, я не могу вернуться позже и открыть файл?