所以我得到了代码:
@Override
public String toString()
{
return "Numer: "+this.arg1 +" Imie: "+this.arg2 +" Nazwisko: "+this.arg3 +" nr Telefonu: "+this.arg4;
}
将obj保存到文件:
public static boolean addObject(Object object) throws IOException
{
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(nazwaBazy, true)));
pw.println(object.toString());
pw.close();
return true;
}
创建对象:
static void dodajKontakt(String imie, String nazwisko, String nrtelefonu)
{
listaOsob.add(new Dane(imie, nazwisko, nrtelefonu, licznik));
licznik = licznik+1;
}
最后从文件中读取并保存到对象...
public static boolean wczytajBaze(Object object)抛出IOException {
BufferedReader br = new BufferedReader(new FileReader(nazwaBazy));
boolean IsGood = false;
Path wiki_path = Paths.get(nazwaBazy);
Charset charset = Charset.forName("ISO-8859-1");
try (BufferedReader reader = new BufferedReader(new FileReader(nazwaBazy))) {
while (true) {
String line = reader.readLine();
if (line == null) {
break;
}
System.out.println(line);
listaOsob.add(new Dane(Dane.getImie(), Dane.getNazwisko(), Dane.getnrTelefonu(), Dane.getlicznik()));
}
}
问题在于
listaOsob.add(new Dane(Dane.getImie(), Dane.getNazwisko(), Dane.getnrTelefonu(), Dane.getlicznik()));
从阅读文件和保存到对象不起作用...我知道我必须在这上面添加toString,因为它是Serializabled,但我仍然不知道该怎么做...
文件数据库的示例内容:
Numer: 1 Imie: Troll Nazwisko: Aaa nr Telefonu: 600600600
Numer: 2 Imie: Troll2 Nazwisko: Bbb nr Telefonu: 700700700
Numer: 3 Imie: Troll3 Nazwisko: Ccc nr Telefonu: 800800800
Numer: 4 Imie: Troll4 Nazwisko: Ddd nr Telefonu: 900900900
Numer: 5 Imie: Troll5 Nazwisko: Eee nr Telefonu: 101010101
Numer: 6 Imie: Troll6 Nazwisko: Fff nr Telefonu: 010101010
每次启动程序时,我都需要将它保存到Object(我的对象的arraylist)中。
答案 0 :(得分:2)
而不是使用Reader / Writer,序列化对象使用ObjectInput / OutputStream。尝试像
这样的东西 FileOutputStream out = new FileOutputStream("test.ser");
ObjectOutputStream oout = new ObjectOutputStream(out);
oout.writeObject(object);
与阅读对象类似,尝试类似
的内容 // create an ObjectInputStream for the file we created before
ObjectInputStream ois =
new ObjectInputStream(new FileInputStream("test.ser"));
System.out.println("" + (Object) ois.readObject());
确保你的Dane Class是Serializableable。而不是使用Object,将Dane传递给您的方法并使用它。