11.Java基础:常见IO流----->字节流中的对象流:ObjectIOutputStream、ObjectInputStream

来源:互联网 发布:牛贝微信淘宝客安装 编辑:程序博客网 时间:2024/05/23 19:14

1.ObjectOutputStream:写入java中的基本数据类型或java对象。

1.写入基本类型

writeInt(int value)、writeLong(long value)....等等

2.写入对象

writeObject(Object object)

3.构造

new ObjectOutputStream(OutputStream os);

举个简单的例子,如何运用

//向文本中写入数据public class ObjectOutputStream {public static void main(String[] args) throws IOException {//写入文本路径文件FileOutputStream fos = new FileOutputStream("e:/a.txt");//创建一个对象流ObjectOutputStream oos = new ObjectOutputStream(fos); //写入基本类型oos.writeInt(100);//写入对象oos.writeObject("hello");oos.flush();oos.close();}}


2.ObjectInputStream:读取java中的基本数据类型或java对象。

1.读取基本类型

redInt(int value)、redLong(long value)....等等

2.读取对象

redObject(Object object)

3.构造

new ObjectInputStream(InputStream is);

//读取文本信息public class ObjectInputStream {public static void main(String[] args) throws IOException, ClassNotFoundException {FileInputStream fos = new FileInputStream("e:/a.txt");ObjectInputStream ois = new ObjectInputStream(fos);//有顺序输出int  i =ois.readInt();System.out.println(i); //读取Integer类型String s = (String)ois.readObject();System.out.println(s);ois.close();}}

注意:构造中参数其实就是指定了源与目的地。


3.序列化问题

1.当上面对象流读取文本信息时,不按照顺序读取信息,就会出现异常。

2.对象如果想要存储到文件或者是在网络中传输,就需要对传输的对象进行序列化。

3.所谓的序列化,就是一个标准与规则

4.要序列化,需要实现一个接口:Serializable

5.如果有需要某个属性不被序列化,加上transient修饰即可。

6.static屬性是不被序列化。

以下例子就是实现序列化

//对象public class Student implements Serializable{//标识private static final long serialVersionUID = 1L;private int id;private <span style="font-family: monospace;font-size:14px;">static </span>String name;<span style="white-space:pre"></span>//不被序列化private transient String sex;//不用被序列化public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", sex=" + sex + "]";}}
//读取对象信息public class ObjectOutputStreamDemo {public static void main(String[] args) throws Exception {//读取E盘下文本FileOutputStream fos = new FileOutputStream("e:/stu.txt");ObjectOutputStream oos = new ObjectOutputStream(fos);Student st = new Student();st.setId(10);st.setName("张三");st.setSex("男");//写入信息到文本oos.writeObject(st);oos.flush(); //刷新oos.close(); //关闭流的写操作}}

0 0
原创粉丝点击