java 对象流_java 对象流的简单使用

对象的输入输出流的作用: 用于写入对象 的信息和读取对象的信息。 使得对象持久化。

ObjectInputStream   : 对象输入流

ObjectOutPutStream  :对象输出流

简单的实例

1 importjava.io.File;2 importjava.io.FileInputStream;3 importjava.io.FileOutputStream;4 importjava.io.IOException;5 importjava.io.ObjectInputStream;6 importjava.io.ObjectOutputStream;7 importjava.io.Serializable;8

9 //创建要写入磁盘的类,这个类需要实现接口 Serializable(可系列化的)

10 class Student implementsSerializable{11

12 //在这里保证了serialVersionUID 的唯一性,防止属性变量的临时改变,从而造成写入id与读取id不同

13 private static final long serialVersionUID = 1L;14 int id ; //额外需要添加一个属性

15

16String name ;17 transient String sex; //transient修饰属性,表示暂时的,则这个属性不会被写入磁盘

18 transient intage;19

20 public Student(String name,String sex,intage){21 this.name =name;22 this.sex =sex;23 this.age =age;24}25}26

27

28 public classobjectIO {29

30 /**31 *@paramargs

32 *@throwsIOException

33 *@throwsClassNotFoundException

34*/

35 public static void main(String[] args) throwsIOException, ClassNotFoundException {36 //TODO Auto-generated method stub

37

38createObj();39readObj();40}41

42 //(一)先写入对象

43 public static void createObj() throwsIOException {44 //1.创建目标路径

45 File file = new File("C:\\Users\\bg\\Desktop\\objTest.txt");46 //2.创建流通道

47 FileOutputStream fos = newFileOutputStream(file);48 //3.创建对象输出流

49 ObjectOutputStream objOP = newObjectOutputStream(fos);50 //4.创建类对象,并初始化

51 Student stu = new Student("玛丽苏", "男", 18);52 //5.向目标路径文件写入对象

53objOP.writeObject(stu);54 //6.关闭资源

55objOP.close();56}57

58 //再读取对象

59 public static void readObj() throwsIOException, ClassNotFoundException {60 File file = new File("C:\\Users\\bg\\Desktop\\objTest.txt");61 FileInputStream fis = newFileInputStream(file);62 ObjectInputStream objIP = newObjectInputStream(fis);63 //读取对象数据,需要将对象流强制转换为 要写入对象的类型

64 Student stu =(Student)objIP.readObject();65 System.out.println("\n name:"+stu.name+"\n sex:"+stu.sex+"\n age:"+stu.age);66objIP.close();67}68

69 }

打印效果

name:玛丽苏

sex:null //后面的这连个属性使用了 transient修饰

age:0

用到方法:writeObject(Object o);  //向磁盘写入对象

readObject();  //读取磁盘的对象,注意这里需要强制类型

对象输入输出流的使用注意点:

1.如果想将一个对象写入到磁盘中,那么对象所属的类必须要进行序列化,实现Serializable 接口,Serializable接口没有任何方法 ,是一个标记接口

2.如果对象所属的类的成员变量发生改变,你在读取原来的对象是就会报错,如果想要解决报错,保证serialVersionUID是唯一。

3.如果你不想将某些信息存入到磁盘 就可以同过transient关键字修饰成员变量

4.如果一个类中引用了另外的一个类,那么另外的这个类也要实现Serializable接口。

如果:

b402f1332f2a5e7e7d2cc3e6a70a21b3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos搭建ftp服务器

1安装vsftpd 2备份配置文件 3修改配置文件 vi /etc/vsftpd/vsftpd.conf anonymous_enableNO #允许匿名用户访问为了安全选择关闭 local_enableYES # 允许本地用户登录 write_enableYES # 是否允许写入 local_umask022 # 本地用户上传文件的umask dirmessage_enableYES #为YES…

ihtml2document能不能根据id获取dom_一段监视 DOM 的神奇代码

作者:Eddie Aich翻译:疯狂的技术宅原文:https://dev.to/eddieaich/spy-on-the-dom-3d47未经允许严禁转载通过使用此模块,只需将鼠标悬停在浏览器中,即可快速查看DOM元素的属性。基本上它是一个即时检查器。将鼠标悬停在…

centos7搭建apache服务器(亲测可用)

1安装apache yum install httpd httpd-devel -y 2开启服务器 systemctl start httpd.service 3开机自启 systemctl enable httpd.service 4关闭防火墙 5端口访问 6修改vi /etc/httpd/conf/httpd.conf,替换 7查看selinux 也可以不修改,放入/var/www/h…

Python爬去知乎上问题下所有图片

from zhihu_oauth import ZhihuClient from zhihu_oauth.exception import NeedCaptchaExceptionclient ZhihuClient()try:client.login(email_or_phone, password)print(u"登陆成功!") except NeedCaptchaException:# 保存验证码并提示输入,重新登录wit…

xshell连接突然报Connection closed by foreign host.

1问题描述报错 Connection closed by foreign host. Disconnected from remote host(yaoGS) at 155513. 2登入虚拟机 在linux系统操作中,经常需要连接其他的主机,连接其他主机的服务是openssh-server,它的功能是让远程主机可以通过网络访问…

java 爬虫_探索Java 多线程爬虫及分布式爬虫架构

在我们调试爬虫程序的时候,单线程爬虫没什么问题,但是当我们在线上环境使用单线程爬虫程序去采集网页时,单线程就暴露出了两个致命的问题:采集效率特别慢,单线程之间都是串行的,下一个执行动作需要等上一个…

docker小实战和应用

1运行一个docker 一开始docker进不去,需要去https://hub.docker.com注册一个 2docker info查看信息 3docker run ubuntu echo hello world 查看第一个命令输出 4docker images 查看本地的镜像 5查看开启的容器和没有开启的容器 Docker ps -a 6 docker pull ngi…

java垃圾回收机制_干货:Java 垃圾回收机制

什么是自动垃圾回收?自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用对象)&…

linux修改网卡名(亲测有效)

1查看网卡ip addr 2cd /etc/sysconfig/network-scripts Ls查看 3mv ifcfg-eno16777736 ifcfg-eth0重命名,然后编辑 最后一行加入IPADDR192.168.30.136 NETMASK255.255.255.0 HWADDR00:0C:29:aa?2f BOOTPROTO改成static 4 vi /etc/default/grub 5 grub2-mkconfig…

读取html文件,让其中的内容和notepad打开这个html的样子一样。

然后我写了个python代码,让其读取这个html文件后,内容和这个一样: htmlfopen(13144815898.html,r,encoding"utf-8") htmlconthtmlf.read() print((htmlcont)) 转载于:https://www.cnblogs.com/www-caiyin-com/p/9447285.html

centos安装ipconfig和telnet命令

1我安装的是mini版的 2首先ipconfig查看不到命令 yum -y install net-tools 解决 3在同事的要求下要安装telnet 首先 rpm -qa telnet-server yum -y install telnet-server rpm -qa telnet yum -y install telnet rpa -qa xinetd yum -y install xinetd 测试 netstat -tnl …

dockerfile使用(一)

1mkdir dl Cd dl Touch Dockerfile 2修改配置vi Dockerfile FROM alpine:latest MAINTAINER xbf CMD echo ‘hello docker’ 3 docker build -t hello_docker . 4 docker images 5 docker run hello_docker

java程序设计实验报告册_20145215《Java程序设计》实验一实验报告

实验一 Java开发环境的熟悉实验内容及步骤使用JDK编译、运行简单的Java程序命令行下程序开发:在命令行下建立实验目录,进入该目录后创建exp1目录敲入以下代码:package exp1;import java.util.Scanner;public class Hello{public static void …

dockfile应用(二)

1创建目录dl2 Cd dl2 Touch dockerfile Touch index,html 2ROM ubuntu MAINTAINER xbf RUN sed -i ‘s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list RUN apt-get update RUN apt-get install -y nginx COPY index.html /var/www/html ENTRYPOINT [&quo…

Fiddler 学习笔记---命令、断点

输入命令框&#xff1a; 1 输入 &#xff1f;51testing 高亮显示对应记录 2 >10 选择body大于10的记录 3 <10 选择body<10的记录 4 200 选择result200的记录行 5 www.51testing.com 选择host包含www.51testing.com的记录 6 select image 选择 content-type 包含image…

docker Registry镜像仓库

docker search whalesay搜索 2docker pull docker/whalesay 拉取镜像 3docker ps 4docker run docker/whalesay cowsay Docker不错 5docker tag docker/whalesay xibeifeng/whalesay docker images 6登录hub官网 可以 docker push xibeifeng/whalesay上传咯

java中的集合框架_JAVA中的集合框架(上)List

第一节 JAVA中的集合框架概述集合的概念&#xff0c;现实生活中&#xff1a;很多事物凑在一起就是一个集合&#xff1b;数学中的集合&#xff1a;具有相同属性事物的总体&#xff1b;JAVA中的集合&#xff1a;是一种工具类&#xff0c;就像是容器&#xff0c;储存任意数量的具有…

【接口时序】2、Verilog实现流水灯及与C语言的对比

一、 软件平台与硬件平台 软件平台&#xff1a; 1、操作系统&#xff1a;Windows-8.1 2、开发套件&#xff1a;ISE14.7 3、仿真工具&#xff1a;ModelSim-10.4-SE 硬件平台&#xff1a; 1、FPGA型号&#xff1a;XC6SLX45-2CSG324 二、 原理介绍 我的开发板上有4个LED灯&#xf…

windows下安装mysql服务

1.下载 首先上MySql的官网下载 https://dev.mysql.com/downloads/mysql/ &#xff0c;本人下载的是 mysql-5.7.24-winx64.zip版。 2.解压存放目录 下载完解压到你想要存放的位置 我的是解压到D:\Program Files\MySQL 。 3.配置环境变量 在环境变量path中追加一句&#xff1a;;D…

web.xml 配置文件 超详细说明!!!

一、web.xml是什么&#xff1f; 首先 web.xml 是java web 项目的一个重要的配置文件&#xff0c;但是web.xml文件并不是Java web工程必须的。 web.xml文件是用来配置&#xff1a;欢迎页、servlet、filter等的。当你的web工程没用到这些时&#xff0c;你可以不用web.xml文件来配…