`

java基础--ObjectOutputStream和ObjectInputStream

 
阅读更多

 

ObjectOutputStream和ObjectInputStream  

这个流的作用是,直接将一个对象转换为字节流..其实就是序列化...implements Serializable

 

Serializable这个是标记性的接口...标记性就是说,这个接口没有提供任何的方法.所以我们也不需要实现方法.但是如果某一个类需要被序列化,那么,他就必须实现这个接口...

 

看例子

 

package com.test.Stream;

 

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;

 

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.FileInputStream;
import java.io.ObjectInputStream;

 

/**
 * @author 陈静波 E-mail:jingbo2759@163.com
 * @version 创建时间:Aug 29, 2009 4:06:45 PM 类说明
 */
public class ObjectStreamTest
{

 

 public static void main(String[] args)
 {
  T t = new T();
  t.k = 15;

 

  try
  {
   FileOutputStream fos = new FileOutputStream("d:/333.txt");
   ObjectOutputStream oos = new ObjectOutputStream(fos);

 

   oos.writeObject(t);

 

   fos.close();
   oos.close();
  } catch (FileNotFoundException e)
  {
   e.printStackTrace();
  } catch (IOException e)
  {
   e.printStackTrace();
  }
  
  try
  {
   FileInputStream fis = new FileInputStream("d:/333.txt");
   ObjectInputStream ois = new ObjectInputStream(fis);
   
   T t2 = (T)ois.readObject();
   
   System.out.println(t2.i);
   System.out.println(t2.k);
   System.out.println(t2.s);
   System.out.println(t2.j);
  } catch (FileNotFoundException e)
  {
   e.printStackTrace();
  } catch (IOException e)
  {
   e.printStackTrace();
  } catch (ClassNotFoundException e)
  {
   e.printStackTrace();
  }
 }

 

}

 

@SuppressWarnings("all")
class T implements Serializable
{
 int i = 20;
 short j = 10;
 String s = "hello";
 int k = 100;
}

 

注意,这里虽然将Object写到了333.txt文件中.但是我们可以看到.333.txt文件里的内容我们看不懂

 

最后说下一个关键字..transient  这个表示透明的,只能修饰类里的属性...作用是,在序列化的时候对被transient修饰的属性不予考虑...很简单的,不举例子了

分享到:
评论

相关推荐

    java1.7-API-英文版

    4. **I/O流**:Java 7的`java.io`包中,流类如`FileInputStream`和`FileOutputStream`用于文件操作,`BufferedReader`和`PrintWriter`用于文本读写,`ObjectInputStream`和`ObjectOutputStream`则支持对象的序列化和...

    北大Java--IO

    - `ObjectInputStream`和`ObjectOutputStream`实现了对象的序列化和反序列化,使得对象的状态可以持久化保存和恢复。 6. **管道流** - 管道流如`PipedInputStream`和`PipedOutputStream`用于线程间的通信,允许...

    Java-Io流,练习

    本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO流的概念 IO流在Java中分为两大类:输入流(Input Stream)和输出流(Output Stream)。输入流用于从源(如文件、网络连接等)读取数据,而输出流则...

    Java课设--模拟QQ聊天小程序.zip

    在Java中,可以使用ObjectOutputStream和ObjectInputStream类进行对象的序列化和反序列化。 7. **事件驱动编程**:Java GUI中的事件处理机制使得用户界面可以对用户的操作做出响应。例如,当用户点击“发送”按钮时...

    java序列化与ObjectOutputStream和ObjectInputStream的实例详解

    Java序列化与ObjectOutputStream和ObjectInputStream的实例详解 Java序列化是指将Java对象转换为字节流的过程,以便将其存储或传输,而后可以将其恢复为原来的对象状态。Java提供了两种方式来实现序列化: ...

    ObjectInputStream

    通过学习和实践`ObjectInputStream`,开发者可以有效地在内存、磁盘或网络之间传递Java对象,增强了程序的灵活性和可移植性。不过,同时也需要注意安全性和版本兼容性问题。在实际开发中,理解并掌握这些知识点是至...

    Java应用程序-日记本

    日记内容可能以文本文件(如.txt或.rtf)的形式存储,或者使用ObjectOutputStream/ObjectInputStream进行序列化,以便保存和恢复更复杂的对象结构,如日记条目。 安全性也是此类应用需要考虑的一个方面。Java提供了...

    Java核心技术-卷1(基础知识-原书第10版)

    9. **输入/输出流**:讲解文件I/O、字节流、字符流、缓冲流,以及ObjectInputStream和ObjectOutputStream用于对象序列化和反序列化。 10. **枚举和注解**:说明枚举类型的作用,以及如何定义和使用枚举。同时,介绍...

    Java语言-自学手册完全版

    - **对象流**:掌握ObjectInputStream与ObjectOutputStream用于序列化与反序列化对象的方法。 #### 7. 多线程 - **线程的基本概念**:认识线程的重要性及其生命周期。 - **线程的创建与控制**:演示如何通过继承...

    JAVA源代码--购物管理系统

    Java的FileInputStream、FileOutputStream和ObjectInputStream/ObjectOutputStream等类可以帮助理解文件操作。 8. **数据库连接**:可能使用JDBC(Java Database Connectivity)来与数据库交互,进行商品信息、订单...

    Java-network-programming-server.zip_java programming_java server

    Java提供了ObjectInputStream和ObjectOutputStream类,使得对象可以被转换为字节流在网络中传输,到达目的地后再还原。此外,JSON和XML等轻量级的数据交换格式也是常用的选择,它们便于解析,且跨平台性好。 安全性...

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)

    Java序列化和反序列化是Java虚拟机中的一种重要机制,它们可以将Java对象转换为二进制数据,然后将其保存到磁盘中或通过网络传输到其他机器上。今天,我们将深入理解Java虚拟机-Java内存区域透彻分析,探讨序列化和...

    java输入输出--java实例17例

    7. **对象流**:ObjectInputStream和ObjectOutputStream用于对象的序列化和反序列化,这在保存和恢复程序状态或跨网络传输对象时非常有用。 8. **文件复制**:一个常见的I/O示例是文件复制,这通常会用到...

    java-chat-program.rar_ClientProc java_java私聊和公聊

    Java提供`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`类来进行序列化和反序列化操作。 8. **安全性**: 考虑到隐私和数据安全,聊天程序可能还采用了加密技术,如SSL/TLS,对传输的数据进行加密,...

    Java 聊天工具--QQ代码

    - **ObjectOutputStream/ObjectInputStream**:可能用到这些类将聊天消息(如文本、图片等)序列化和反序列化,以便在网络中传输。 6. **文件存储**: - **本地存储**:聊天记录、用户信息、头像等可能会被存储在...

    动力节点Java基础301集

    - **对象流**:ObjectInputStream和ObjectOutputStream用于序列化和反序列化对象。 ### 九、多线程 - **线程的基本概念**:理解进程与线程的区别,线程的生命周期。 - **线程的创建**:通过继承Thread类或实现...

    (超赞)JAVA精华之--深入JAVA API

    - `ObjectInputStream` 和 `ObjectOutputStream` 支持序列化和反序列化 Java 对象。 - **字符流** - `InputStreamReader` 和 `OutputStreamWriter` 用于读写字符数据,通常与编码解码相关联。 - **随机存取文件*...

    毕业设计论文-IT计算机-Java聊天室程序(java)-源码.zip

    Java的`ObjectOutputStream`和`ObjectInputStream`类可以方便地处理对象序列化和反序列化,用于传输自定义对象。 4. **并发处理**:在Java中,`ExecutorService`和`ThreadPoolExecutor`可以帮助我们管理和调度并发...

    Java面试-反射机制.doc

    在本文中,我们将详细探讨 Java 中的反射机制和 IO 流,包括字节流和字符流的区别、Java 序列化的实现等。 一、Java 反射机制 Java 反射机制是 Java 语言中的一种机制,允许在运行时检查和修改类的结构和行为。...

    完整版Java全套入门培训课件 Java基础 07-IO(共29页).rar

    Java.IO(Input/Output)是Java...通过这29页的课件,学习者将能掌握Java IO的基础知识,为后续的高级IO操作,如网络编程和数据库交互奠定坚实基础。在实际开发中,熟练运用Java IO可以有效提升程序的效率和灵活性。

Global site tag (gtag.js) - Google Analytics