文档章节

JavaSE 对象流

博为峰教研组
 博为峰教研组
发布于 2017/04/09 17:39
字数 287
阅读 3
收藏 0
点赞 0
评论 0

 

ObjectOutputStream和ObjectInputStream分别代表对象字节输出流和对象字节输入流,其功能分别是:

ObjectOutputStream

提供了writeObject(Serializable)方法,将对象转化成字节流再输出到目标字节流中去。这一个过程称为序列化。需要序列化的类必须实现Serializable接口。

ObjectInputStream

提供了Object readObject()方法,将字节输入流转化成对象。这一个过程称为反序列化

   

示例1代码:

  class Student implements Serializable{

private String name;

private int age;

 

public Student(String name, int age) {

super();

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + "]";

}

}

public class TestObjectOutputStream {

public static void main(String[] args) {

ObjectOutputStream oos=null;

FileOutputStream fos=null;

try {

fos = new FileOutputStream("obj.dat");

oos=new ObjectOutputStream(fos);

Student s=new Student("Jack",20);

oos.writeObject(s);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

if(oos!=null)oos.close();

if(fos!=null)fos.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

 

 

 

示例2代码:

 

public class TestObjectInputStream {

public static void main(String[] args) {

ObjectInputStream ois=null;

FileInputStream fis=null;

try {

fis = new FileInputStream("obj.dat");

ois=new ObjectInputStream(fis);

Student s=(Student) ois.readObject();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}finally{

try {

if(ois!=null)ois.close();

if(fis!=null)fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

 

}

 

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 49
博文 1224
码字总数 479077
作品 0
黄浦
程序员
Java 编程要点之 I/O 流详解

原文同步至: 本文详细介绍了 Java I/O 流的基础用法和原理。 字节流(Byte Streams) 字节流处理原始的二进制数据 I/O。输入输出的是8位字节,相关的类为 InputStream 和 OutputStream. 字节流...

waylau ⋅ 2016/01/19 ⋅ 8

大虾们求助攻!!java输入输出流: fis=null;为什么不能替代fis.close();释放资源???

以前学习javase时隐约就有这个疑惑,最近工作中发现这样的问题,拿出来向大家请教: @Testpublic void testDeleteFolder() throws IOException { readFile(path);File file = new File(path)...

itwriter ⋅ 2014/09/18 ⋅ 5

javaweb入门笔记(4)-request和response

javaweb入门笔记(4)-request和response 标签: javaweb [TOC] API: * Interface HttpServletResponse * [Interface HttpServletRequest](https://tomcat.apach...

brianway ⋅ 2016/02/06 ⋅ 0

[看图说话]38张图带你看遍Java基础

写在前面 近两年、随着移动端人才的饱和与市场投资的减少,移动端(主要只iOS与Android)找工作的难度有所增加(薪资与需求减少);因此,今年以来就开始着手学习Android,至今,初有成效。现在把...

才华惊动党中央 ⋅ 2017/12/28 ⋅ 0

JAVASE中级笔记

n 内部类:定义在一个类内部的类,就称为内部类 u 内部类分为3种 ² 成员内部类:相当于成员变量 ² 局部内部类:定义在方法内部的,相当于局部变量(极少用到,了解即可) ² 匿名内部类:(...

超人学院 ⋅ 2016/07/26 ⋅ 0

JavaSE——数据类型流、内存流、打印流

班级编号:VIP17 学员名字:小吴 课程名称:JAVASE 数据类型流 DataOutputStream是数据类型输出流,它能把基本数据类型直接写入到文件里; DataInputStream是数据类型输入输流,它能把基本数...

凯哥学堂 ⋅ 05/07 ⋅ 0

JavaSE的输入流、输出流

首先是四大基本抽象流,具体如下: 字节流 字符流 输入流 InputStream Reader 输出流 OutputStream Writer 以上四个流都是抽象流)(但不是抽象类),通常我们使用的都是它们的子类(注意是通...

天蚕宝衣 ⋅ 2016/06/07 ⋅ 0

JavaSE和JavaEE的起步学习路线

Java javaSE部分 1)能够掌握DOS系统常用基本命令; 2)熟练使用eclipse编写java代码; 3)掌握常用数据结构和算法; 4)掌握常用的编程设计模式; 5)熟练使用java语言的常用对象; 6)使用java编...

Jasonisoft ⋅ 2016/05/18 ⋅ 0

JDiy-2.3正式版发布!超轻量级java极速开发框架

JDiy是一个超轻量级的java极速开发框架,同时也内置一套javaWeb建站开发平台。可以将JDiy应用于javaWeb/javaEE开发环境,或者javaSE开发环境。javaWeb开发,可以使用JDiy完全替代庞大的SSH....

子秋 ⋅ 2013/07/04 ⋅ 12

Android Parcelable接口

1、实现Parcelable就是为了进行序列化,那么,为什么要序列化? 1)永久性保存对象,保存对象的字节序列到本地文件中; 2)通过序列化对象在网络中传递对象; 3)通过序列化在进程间传递对象...

SRain215 ⋅ 2016/04/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 20分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 20分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 22分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 32分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 46分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部