Java将对象保存到文件中/从文件中读取对象的方法_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异常。另外,如果写入的对象是一个容器,例如List、Map,也要保证容器中的每个元素也都是实现 了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将对象保存到文件中/从文件中读取对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
读取文件并保存
java从文件中读取对象、java对象保存到文件、java 读取文件并保存、java读取保存txt文件、java 读取对象,以便于您获取更多的相关知识。

时间: 2024-09-13 14:45:48

Java将对象保存到文件中/从文件中读取对象的方法_java的相关文章

c++-文件的读写,会将类对象的数据成员写入文件中。能将文件中的信息读入类对象的对应属性中。

问题描述 文件的读写,会将类对象的数据成员写入文件中.能将文件中的信息读入类对象的对应属性中. 情况一:无get,set,无<< >>重载函数的情况下如何将类对象的各个数据成员写入某个文件中(提示:可以在print函数中写代码). 情况二:当程序包含get,set函数而无<< >>重载函数时,如何将类对象的数据成员写入文件中. 情况三:当程序包含<< >>重载函数时,如何将类对象的数据成员写入文件中. 解决方案 大神在哪里,求,求大神

c++-如何将自定义类的对象保存在Arduino的Flash中?

问题描述 如何将自定义类的对象保存在Arduino的Flash中? 最近在编写Arduino Uno上的程序时,遇到了内存不足的问题.鉴于在Flash里头的内存空间十分充裕,而SRAM中只有2k bytes,我希望能够把自己定义类的对象数据保存在Flash里头,等到需要调用的时候再调到SRAM里头进行处理.不知哪位大神能够指导一下这需要如何操作呀? 最好额外说明一下,读与写两种情况,并给几个例子哟!谢谢啦!

怎么关闭WPS演示中影音文件中声音

  怎么关闭WPS演示中影音文件中声音 1.打开WPS演示,点击菜单栏--插入--影片和声音--文件中的影片. 2.弹出对话框,找到要插入影片的位置,点击打开,将影音文件插入到演示中. 3.鼠标移动到演示中的黑屏位置,右键点击,选择编辑影片对象. 4.点击声音音量后的小喇叭按钮,勾选静音.确定之后播放幻灯片,影片的声音已经没有了.

matlab中m文件中的一些问题

问题描述 matlab中m文件中的一些问题 修改了其中的数据后,为什么在m文件中运行,结果还是一样的? 解决方案 应该是m文件的问题.看看是否有clear all或影响r的地方. 解决方案二: 重新启动matlab,删除了数据重新运行下.再不行看下程序,有没有读取到数据,代码有没有问题.

字符串-linux中查找文件中中文逗号

问题描述 linux中查找文件中中文逗号 .csv文件中有一个字段是一个中文的逗号",",可是我把这个文件放到linux系统中用getline() 读取一行到一个字符串中str, 再用str.find() 查找这个逗号,为什么找不到啊? 怎么才能找到??? 求大牛解答,急急急!!! 解决方案 完全可以用linux cat指令加上grep进行查找,十分方便 解决方案二: 你用unicode方式读取文件.然后用wstring来查找 同时你的linux需要支持中文 解决方案三: 我是要读取文

在 android 中的文件中输入数据

问题描述 在 android 中的文件中输入数据 下面的代码重写了文件.我想让原来的数据还保持一致. osw..append (data); 但是没有获得结果. public void WriteSettings(Context context String data){ FileOutputStream fOut = null; OutputStreamWriter osw = null; try{ fOut = context.openFileOutput(""abc.txt&qu

代码-android中xml文件中xmlns问题

问题描述 android中xml文件中xmlns问题 xmlns:android="http://schemas.android.com/apk/res/android" 这段代码加在xml文件头部就会报错,是怎么回事? 解决方案 只能放在根节点 上,比如 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

mfc-MFC中从文件中输入一个浮点数,求这个浮点数的导数

问题描述 MFC中从文件中输入一个浮点数,求这个浮点数的导数 MFC中从文件中输入一个浮点数,求这个浮点数的导数,看了一些公式比较晕 解决方案 一个数怎么求导数,你明白什么是导数么?

使用java web 在jsp文件及Class中连接MySQL和SQLsever 的驱动方法_java

--方法一 使用java web 在jsp文件中连接 连接MySQL的驱动 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%>