gpt4 book ai didi

java - 从文件中读取对象 - Java

转载 作者:行者123 更新时间:2023-11-30 03:30:20 24 4
gpt4 key购买 nike

所以我得到了代码:

 @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 放在上面,也许因为它是可序列化的,但我仍然不确定如何做到这一点...

文件数据库的示例内容:

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

每次启动程序时,我都需要将其保存到一个对象(我的对象数组列表)中。

最佳答案

不使用 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 类是可序列化的。另外,不要使用 Object,而是将 Dane 传递给您的方法并使用它。

关于java - 从文件中读取对象 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com