博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中IO流中的对象操作流
阅读量:2440 次
发布时间:2019-05-10

本文共 2417 字,大约阅读时间需要 8 分钟。

java中IO流中的对象操作流

概述

用于从流中读取对象的

ObjectInputStream 称为 反序列化流,利用输入流从文件中读取对象

ObjectOutputStream 称为 序列化,利用输出流向文件中写入对象

特点:用于操作对象。可以将对象写入到文件中,也可以从文件中读取对象

package com.itheima_07;/*	 * 对象操作流:可以用于读写任意类型的对象 * 		ObjectOutputStream * 				writeObject  * 				ObjectOutputStream(OutputStream out)  * 		ObjectInputStream * 				readObject * 				ObjectInputStream(InputStream in) *  * 注意: * 		使用对象输出流写出对象,只能使用对象输入流来读取对象 * 		只能将支持 java.io.Serializable 接口的对象写入流中 *  */public class ObjectOutputStreamDemo2 {	public static void main(String[] args)  {			}}

利用序列化流读写对象

package com.itheima_07;import java.io.Serializable;public class Student implements Serializable {		/**	 * 	 */	String name;	int age;		public Student(String name,int age) {		this.name = name;		this.age = age;	}	@Override	public String toString() {		return "Student [name=" + name + ", age=" + age +"]";	}}package com.itheima_07;import java.io.EOFException;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/*	 * 使用对象输出流和读对象输入流写对象 * Exception in thread "main" java.io.NotSerializableException: com.itheima_07.Student * Serializable:序列号,是一个标识接口,只起标识作用,没有方法 * 				当一个类的对象需要IO流进行读写的时候,这个类必须实现该接口 *  * Exception in thread "main" java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。 *  */public class ObjectOutputStreamDemo {	public static void main(String[] args) throws IOException, ClassNotFoundException  {		//method();		//创建对象输入流的对象		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));		//读取对象		/*Object obj = ois.readObject();		System.out.println(obj);				Object obj2 = ois.readObject();		System.out.println(obj2);				Object obj3 = ois.readObject();		System.out.println(obj3);*/				try {			while(true) {				Object obj = ois.readObject();				System.out.println(obj);			}		} catch(EOFException e) {			System.out.println("读到了文件的末尾");		}				//释放资源		ois.close();	}	private static void method() throws IOException, FileNotFoundException {		//创建对象输出流的对象		//FileOutputStream fos = new FileOutputStream("a.txt");		//ObjectOutputStream oos = new ObjectOutputStream(fos);		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));				//创建学生对象		Student s = new Student("zhangsan",18);		Student s2 = new Student("lisi",19);		//写出学生对象		oos.writeObject(s);		oos.writeObject(s2);				//释放资源		oos.close();	}}

转载地址:http://lnjqb.baihongyu.com/

你可能感兴趣的文章
docker本地开发和测试_如何使用Docker和DDEV在本地计算机上开发Drupal 9网站
查看>>
给网页添加背景图片html_如何使用HTML将背景图像添加到网页的顶部
查看>>
如何在Ubuntu 20.04上将Postfix安装和配置为仅发送SMTP服务器
查看>>
如何在Ubuntu 20.04上使用Docker和Caddy远程访问GUI应用程序
查看>>
如何使用Docker,Nginx和加密来扩展和保护Django应用程序
查看>>
如何在Ubuntu 18.04上使用Docker和Caddy远程访问GUI应用程序
查看>>
如何在Ubuntu 18.04上使用Ansible设置和保护etcd群集
查看>>
Apache配置错误AH00558:无法可靠地确定服务器的标准域名
查看>>
apache 证书配置_Apache配置错误AH02572:无法配置至少一个证书和密钥
查看>>
discord china_如何在Ubuntu 18.04上使用Discord Webhooks获取有关您的网站状态的通知
查看>>
web设置字体粗细css_Web上使用CSS的可变字体
查看>>
css 垂直对齐_CSS垂直对齐属性
查看>>
css3失去焦点伪类_CSS:伪类内的焦点
查看>>
revit2014项目样板_HTML5模板:适用于任何项目的基本样板
查看>>
为您的网站提供动力的100种Jamstack工具,API和服务
查看>>
api restful_构建RESTful API的13种最佳实践
查看>>
通过索引和说明提高MySQL性能
查看>>
wordpress用途_8个热门WordPress多用途主题及其炫酷功能
查看>>
使用Blackfire进行PHP级性能优化
查看>>
wordpress api_开发WordPress REST API应用程序:入门
查看>>