Эй, ребята, я довольно новичок в разработке и на этом форуме и хотел создать зеркало для входа. Мне пришлось использовать BlueJ из-за моего учителя и, да, это, пожалуй, не самый лучший способ научиться писать, я думаю (версия, которую мы должны использовать в школе, даже не показывает ошибок перед компиляцией) (я лично начал писать с Eclipse ).
Моя проблема в том, что вывод, который я получаю из моего hasMapReader, просто равен нулю, после того как я «сохранил» HashMap в новом файле и «записал» его в другой HashMap.
HashMap<String, Serializable> userAcc = new HashMap<String, Serializable>();
userAcc.put(name, value);
otherClass.hashMapSaver(userAcc, hashMapFile = new java.io.File(location));
public HashMap<String, Serializable> hashMapSaver(HashMap<String, Serializable> map, java.io.File file){
try{
FileOutputStream f = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(map);
s.close();
f.close();
}catch (IOException e) {
e.printStackTrace();
}
return map;
}
HashMap<String, Serializable> userAcc2 = new HashMap<String, Serializable>();
otherClass.hashMapReader(userAcc2, new java.io.File(hashMapFile));
(userAcc2 находится в третьем "основном" классе)
затем hashMapReader в другом классе:
public HashMap<String, Serializable> hashMapReader(HashMap<String, Serializable> map2, java.io.File file){
try{
FileInputStream f = new FileInputStream(file);
ObjectInputStream s = new ObjectInputStream(f);
map2 = (HashMap<String, Serializable>) s.readObject();
f.close();
s.close();
}catch (IOException e) {
e.printStackTrace();
return null;
} catch (ClassNotFoundException c) {
c.printStackTrace();
return null;
}
return map2;
}
System.out.println("userAcc2: " + userAcc2.get(name));
System.out.println("HashMap Keys: " + userAcc2.keySet());
но консоль просто распечатывает:
userAcc2: null;
Ключи HashMap: []
Другая проблема, я думаю, заключается в том, что файл может заменяться каждый раз, когда я запускаю эту программу.
Я пытаюсь решить эту проблему почти неделю.
Спасибо :),