gpt4 book ai didi

java - 将 Java 对象写入文件

转载 作者:搜寻专家 更新时间:2023-11-01 01:03:29 24 4
gpt4 key购买 nike

是否可以将 Java 中的对象写入二进制文件?我要编写的对象是 2 个 String 对象数组。我想这样做的原因是保存持久数据。如果有更简单的方法,请告诉我。

最佳答案

你可以

  1. 序列化数组或类包含数组。
  2. 将数组写成格式化的两行 方式,例如 JSON、XML 或 CSV。

这是第一个的一些代码(您可以用数组替换队列)序列化

public static void main(String args[]) {
String[][] theData = new String[2][1];

theData[0][0] = ("r0 c1");
theData[1][0] = ("r1 c1");
System.out.println(theData.toString());

// serialize the Queue
System.out.println("serializing theData");
try {
FileOutputStream fout = new FileOutputStream("thedata.dat");
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(theData);
oos.close();
}
catch (Exception e) { e.printStackTrace(); }
}

反序列化

public static void main(String args[]) {
String[][] theData;

// unserialize the Queue
System.out.println("unserializing theQueue");
try {
FileInputStream fin = new FileInputStream("thedata.dat");
ObjectInputStream ois = new ObjectInputStream(fin);
theData = (Queue) ois.readObject();
ois.close();
}
catch (Exception e) { e.printStackTrace(); }

System.out.println(theData.toString());
}

第二个更复杂,但具有人性化和其他语言可读性的优点。

以 XML 格式读写

import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
import java.io.*;

public class XMLSerializer {
public static void write(String[][] f, String filename) throws Exception{
XMLEncoder encoder =
new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(filename)));
encoder.writeObject(f);
encoder.close();
}

public static String[][] read(String filename) throws Exception {
XMLDecoder decoder =
new XMLDecoder(new BufferedInputStream(
new FileInputStream(filename)));
String[][] o = (String[][])decoder.readObject();
decoder.close();
return o;
}
}

往返于 JSON

Google 在 http://code.google.com/p/google-gson/ 有一个很好的 JSON 转换库。您可以简单地将对象写入 JSOn,然后将其写入文件。阅读则相反。

关于java - 将 Java 对象写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3030642/

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