Java对象流的基本概念:

实例代码:

实体类User:

  1. import java.io.Serializable;
  2.  
  3. /**
  4. * @author zsh
  5. * @company wlgzs
  6. * @create 2019-01-25 15:11
  7. * @Describe
  8. */
  9. public class User implements Serializable {
  10.  
  11. private Integer id;
  12.  
  13. private String name;
  14.  
  15. public User(Integer id, String name) {
  16. this.id = id;
  17. this.name = name;
  18. }
  19.  
  20. @Override
  21. public String toString() {
  22. return "User{" +
  23. "id=" + id +
  24. ", name='" + name + '\'' +
  25. '}';
  26. }
  27. }

Main类:

  1. import java.io.*;
  2. import java.util.ArrayList;
  3.  
  4. public class Main {
  5.  
  6. public static void main(String[] args) throws IOException, ClassNotFoundException {
  7. //1.定义1个存储user的ArrayList集合
  8. ArrayList<User> list = new ArrayList<>();
  9.  
  10. //2.往ArrayList集合中存储User对象
  11. list.add(new User(1,"张三"));
  12. list.add(new User(2,"李四"));
  13. list.add(new User(3,"王五"));
  14.  
  15. //3.创建一个序列化流ObjectOutputSteam对象
  16. ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("t.txt"));
  17.  
  18. //4.使用ObjectOutputSteam对象的方法writeObject,对集合进行序列化
  19. oos.writeObject(list);
  20.  
  21. //5.创建一个反序列化流ObjectInputSteam对象
  22. ObjectInputStream ois = new ObjectInputStream(new FileInputStream("t.txt"));
  23.  
  24. //6.使用ObjectInputStream对象的方法readObject,读取文件中保存的集合
  25. Object o = ois.readObject();
  26.  
  27. //7.把Object类型的集合转换为ArrayList类型
  28. ArrayList<User> list2 = (ArrayList<User>) o;
  29.  
  30. //8.遍历ArrayList集合
  31. for (User user : list2) {
  32. System.out.println(user);
  33. }
  34.  
  35. //9.释放资源
  36. oos.close();
  37. ois.close();
  38.  
  39. }
  40. }

项目结构目录:

Java序列化流-ObjectOutputStream、ObjectInputStream的更多相关文章

  1. java 序列化流与反序列化流

    一 对象序列化流ObjectOutputStream ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStr ...

  2. Java序列化流的奇妙之旅

    Java序列化流有何奇妙之处呢?通过一个个案例逐一感受序列化流. !!!好戏在后头!!! 1.IO流读写文件 先从一个普通文件读写字符串开始讲起. 例子:输出字符串到文件,再从文件中读取字符串 在某一 ...

  3. 序列化和返序列化的概述和对象的序列化流ObjectOutputStream

    序列化和返序列化的概述 对象的序列化流ObjectOutputStream Person类: package com.yang.Test.ObjectStreamStudy; import java. ...

  4. Java序列化流

    1.什么是序列化流 序列化就是把Java对象“流化”,序列化后的Java对象可以保存到本地文件系统,或者通过Socket传输到其他的服务器. Java中对象序列化有以下特点: 1)类实现java.io ...

  5. 34.4 对象流 ObjectOutputStream ObjectInputStream

    * 对象操作流:可以用于读写任意类型的对象 * ObjectOutputStream * writeObject * ObjectOutputStream(OutputStream out) * Ob ...

  6. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  7. Java第三阶段学习(五、流的操作规律、Properties流、序列化流与反序列化流、打印流、commons-IO jar包)

    一.流的操作规律 四个明确: 明确一:明确要操作的数据是数据源还是数据目的地 源:InputStream   Reader 目的地:OutputStream Writer 先根据需求明确是要读还是写 ...

  8. JAVA基础之Properties类、序列化流及打印流、commons-IO

    个人理解: Properties类是个存储String类型的键值对的集合类,可以用其存储一些关键的账号密码什么的,同时后面的注释可以很好的帮助理解,但是需要注意的是其文件中不能出现其他的符号:序列化与 ...

  9. java基础(25):Properties、序列化流、打印流、commons-IO

    1. Properties类 1.1 Properties类介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符 ...

随机推荐

  1. 设计模式之——flyweight模式

    flyweight模式,又叫做享元模式. 顾名思义,享元模式就是共享一个元素. 百度百科 解释为: 享元模式(英语:Flyweight Pattern)是一种软件设计模式.它使用共享物件,用来尽可能减 ...

  2. textField placeholder颜色,位置设置

    自定义textField继承自UITextField 重写 - (CGRect)placeholderRectForBounds:(CGRect)bounds _phoneTF.font = HPFo ...

  3. related Field has invalid lookup: icontains 解决方法

    models.py 文件 # coding:utf8 from django.db import models class Book(models.Model):         name = mod ...

  4. 启动spark-shell

    $cd /app/hadoop/spark-1.1.0/bin $spark-shell --master spark://SPARK02:7077 --executor-memory 500m 特别 ...

  5. Codeforces Round #247 (Div. 2) D. Random Task

    D. Random Task time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  6. XPath轴

    XPath 轴翻译:Linyupark / 2006-03-24 The XML Example DocumentXML举例文档 We will use the following XML docum ...

  7. [LeetCode] 458. Poor Pigs_Easy tag: Math

    There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. Th ...

  8. iOS 开发笔记-UILable/UIFont/UIButton常见设置

    UILabel的常见设置 @property(nonatomic,copy) NSString *text; 显示的文字 @property(nonatomic,retain) UIFont *fon ...

  9. .NET 互联网技术简介

    概述 技术更新太快,尤其是在互联网公司里,很多新的主流技术,我们还是必须要知道和熟练使用的.下面就给大家简单介绍,入门还是需要大家更努力的去深入学习. 目录 Git 入门 常用软件安装及VS插件工具 ...

  10. jQuery在iframe里取得父窗口的某个元素的值

    提供一款jQuery在iframe里取得父窗口的某个元素的值实现,这个iframe用js也差不多,有需要的朋友可以参考一下. 1.在父窗口中获取指定iframe(testiframe) id 为 te ...