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将对象保存到文件中/从文件中读取对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我看到过很多不同的文章,涉及到您应该以何种方式将对象序列化到文件,并且所有这些在本质上在执行方式和最佳实践方面存在冲突。因此,这就是我要保存的内容: 我们可以假设configArgs的大小已知,我需要制作一个文件,这就是到目前为止的内容。 问题答案: 好吧,我想,您想将对象直接写入文件 我只是提供了重要的代码。通过异常处理来实现。
问题内容: 我想将一个对象保存到文件中,然后轻松地从文件中读取它。作为一个简单的示例,可以说我有以下3d数组: 是否有一个简单的Ruby API,无需编程解析器即可解释文件中的数据,就可以用来实现此目的?在示例中,我给出了一个简单的例子,但是随着对象变得越来越复杂,使对象持久化变得很烦人。 问题答案: 参见元帅:http : //ruby- doc.org/core/classes/Marshal
我正试图将我的客户Java对象保存到一个文本文件中,然而,每当我尝试执行GUI并输入字段时,输出是这样的:文件中混淆的字符和数据 我根本不知道怎么解决这个问题。 下面是我的保存到文件代码: customer对象存储在数组中: 当按下submit按钮并将其保存到customer对象数组时,将创建My customer对象,如以下代码所示: 下面是GUI布局
我试图将包含Contact类型的序列化对象的文件读入ArrayList ContactsCollection。我遇到的问题是联系的对象从未添加到ArrayList中。
问题内容: 我正在寻找一个JSON分析器,该分析器可以让我从大型JSON文件(大小为几百MB)中遍历JSON对象。我从Json.NET尝试了JsonTextReader,如下所示: 但是它在令牌之后返回令牌。 如果我需要整个对象而不是令牌,有没有更简单的方法? 问题答案: 假设您有一个与此类似的json数组: 我将为对象类型声明一个类 现在,反序列化部分 还有一个伪JsonConverter类来拦
在我的main(一个名为VehicleDriverClass的seperate类)中,我试图使用I/O将车辆数据写入文件,并从文件中读取车辆数据。我可以写一个文件罚款。我正在使用记事本和一个。txt文件来读取。我遇到的问题是,当从文件中读取时,如何终止一行的结尾。这里是Vehicle类的构造函数,所以您知道Paramaters。 这就是我目前的输入法(不试图创建oject,只是从文件中读取)。传递