Java 将对象保存到文件中 / 从文件中读取对象的方法
这里有新鲜出炉的 Java 函数式编程, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
下面小编就为大家带来一篇 Java 将对象保存到文件中 / 从文件中读取对象的方法小编觉得挺不错的, 现在就分享给大家, 也给大家做个参考一起跟随小编过来看看吧
1. 保存对象到文件中
Java 语言只能将实现了 Serializable 接口的类的对象保存到文件中, 利用如下方法即可:
- public static void writeObjectToFile(Object obj) {
- File file = new File("test.dat");
- FileOutputStream out;
- try {
- out = new FileOutputStream(file);
- ObjectOutputStream objOut = new ObjectOutputStream(out);
- objOut.writeObject(obj);
- objOut.flush();
- objOut.close();
- System.out.println("write object success!");
- } catch(IOException e) {
- System.out.println("write object failed");
- e.printStackTrace();
- }
- }
参数 obj 一定要实现 Serializable 接口, 否则会抛出 java.io.NotSerializableException 异常另外, 如果写入的对象是一个容器, 例如 ListMap, 也要保证容器中的每个元素也都是实现 了 Serializable 接口例如, 如果按照如下方法声明一个 Hashmap, 并调用 writeObjectToFile 方法就会抛出异常但是如果是 Hashmap<String,String > 就不会出问题, 因为 String 类已经实现了 Serializable 接口另外如果是自己创建的类, 如果继承的基类没有实现 Serializable, 那么该类需要实现 Serializable, 否则也无法通过这种方法写入到文件中
- Object obj=new Object();
- //failed,the object in map does not implement Serializable interface
- HashMap<String, Object> objMap=new HashMap<String,Object>();
- objMap.put("test", obj);
- writeObjectToFile(objMap);
2. 从文件中读取对象
可以利用如下方法从文件中读取对象
- public static Object readObjectFromFile()
- {
- Object temp=null;
- File file =new File("test.dat");
- FileInputStream in;
- try {
- in = new FileInputStream(file);
- ObjectInputStream objIn=new ObjectInputStream(in);
- temp=objIn.readObject();
- objIn.close();
- System.out.println("read object success!");
- } catch (IOException e) {
- System.out.println("read object failed");
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return temp;
- }
读取到对象后, 再根据对象的实际类型进行转换即可
以上这篇 Java 将对象保存到文件中 / 从文件中读取对象的方法就是小编分享给大家的全部内容了, 希望能给大家一个参考, 也希望大家多多支持 PHPERZ
来源: http://www.phperz.com/article/18/0205/359283.html