`
wutao8818
  • 浏览: 615734 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Object Streams

    博客分类:
  • io
阅读更多
Data Streams

http://java.sun.com/docs/books/tutorial/essential/io/datastreams.html

package org;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class DataStreams {

	static final String dataFile = "invoicedata";
	static final double[] prices = { 19.99, 9.99, 15.99, 3.99, 4.99 };
	static final int[] units = { 12, 8, 13, 29, 50 };
	static final String[] descs = { "Java T-shirt", "Java Mug",
			"Duke Juggling Dolls", "Java Pin", "Java Key Chain" };

	public static void main(String[] args) throws Exception {
		DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
				new FileOutputStream(dataFile)));
		for (int i = 0; i < prices.length; i++) {
			out.writeDouble(prices[i]);
			out.writeInt(units[i]);
			out.writeUTF(descs[i]);
		}

		if (out != null) {
			out.close();
		}

		DataInputStream in = new DataInputStream(new BufferedInputStream(
				new FileInputStream(dataFile)));
		double price;
		int unit;
		String desc;
		double total = 0.0;

		try {
			while (true) {
				price = in.readDouble();
				unit = in.readInt();
				desc = in.readUTF();
				System.out.format("You ordered %d units of %s at $%.2f%n",
						unit, desc, price);
				total += unit * price;
			}
		} catch (Exception e) {
		}

	}

}



Data streams support binary I/O of primitive data type values (boolean, char, byte, short, int, long, float, and double) as well as String values.


Object Streams
http://java.sun.com/docs/books/tutorial/essential/io/objectstreams.html

subinterfaces of DataInput and DataOutput



持久化对象将持久化关联的对象

A stream can only contain one copy of an object, though it can contain any number of references to it. Thus if you explicitly write an object to a stream twice, you're really writing only the reference twice.

Object ob = new Object();
out.writeObject(ob);
out.writeObject(ob);


如果是这样的情况,也只写入一次对象。写入2次对象的引用

Object ob1 = in.readObject();
Object ob2 = in.readObject();


得到一个对象的2个引用
分享到:
评论

相关推荐

    09_IOAndProperties_javaIO流_get9va_

    在Java中,IO流分为四类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理的是8位的数据单元,而字符流处理的是16位的Unicode字符。对于...

    Java高级 io 流特性

    3. **对象序列化流(Object Streams)** Java提供`ObjectInputStream`和`ObjectOutputStream`,用于对象的序列化和反序列化。通过这些流,Java对象可以被转换为字节流,便于存储或网络传输。 4. **过滤流(Filter ...

    javaIO流javaIO流javaIO流

    Java IO库包含了大量类和接口,它们分为四类主要流:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和套接字流(Socket Streams)。 1. 字节流:字节流处理单个字节的数据,包括...

    office ppt文档格式解析

    5. **对象存储区(Object Streams)**:包含了嵌入的媒体文件,如音频、视频或链接到的外部文件。 6. **超链接存储区(Hyperlink Stream)**:管理幻灯片内的超链接和动作设置,允许用户跳转到其他位置或打开网页。...

    JAVA_IO操作总结——节点流和处理流.pdf

    - **对象流(Object Streams)**:`ObjectInputStream` 和 `ObjectOutputStream` 支持对象的序列化和反序列化,即对象的状态可以被转化为字节流存储到文件或其他媒介中,也可以从字节流中恢复对象状态。为了支持序列化...

    Java2核心技术卷I+卷2:基础知识(第8版) 代码

    Object Streams and Serialization 39 File Management 59 New I/O 65 Regular Expressions 75 Chapter 2: XML 87 Introducing XML 88 Parsing an XML Document 93 Validating XML Documents 105 ...

    JAVA 课程设计--绘图软件

    1-3-1-1:通过Object Streams方式保存并读入对象; 1-3-1-2:通过文本格式解析生成对象。 1-3-2:读入1-3-1保存的文件,重现之前绘制的形状。 评分标准:总分100分,计分后转为5分制 程序基本框架 ...

    class_classjavaj_

    5. **对象流(Object Streams)**: 对于序列化和反序列化Java对象,Java提供了ObjectInputStream和ObjectOutputStream。这些类允许我们将Java对象转换为字节流,以便存储或在网络上传输。 在"day12"这个文件中,...

    JAVA程序设计-ch09.Java输入输出系统.ppt

    此外,Java的I/O系统还支持管道流(Pipe Streams)、对象流(Object Streams)、网络流(Socket Streams)等,使得Java能够处理更复杂的数据传输场景,如进程间通信、序列化和网络通信。 总结来说,Java的输入输出系统是...

    Java文件操作案例源码.rar

    6. **对象流(Object Streams)**: - `ObjectInputStream`和`ObjectOutputStream`用于序列化和反序列化Java对象,允许对象的数据保存到文件或在网络间传输。 7. **文件复制**: 常见的文件操作之一是文件复制,...

    一些与java相关的东西

    还有缓冲流(Buffered streams)可以提高效率,转换流(Convert streams)用于在不同类型的流之间转换,以及对象流(Object streams)用于序列化和反序列化对象。 接下来,我们关注Java中的静态块和初始化块。静态...

    java输入输出流学生成绩管理

    Java I/O流分为四大类:字节流(Byte Streams)、字符流(Character Streams)、对象流(Object Streams)和缓冲流(Buffered Streams)。字节流处理单个字节的数据,而字符流处理Unicode字符。对象流允许序列化和反...

    Java学习资料(内含基本语法、异常处理、Applet编程、GUI、线程、输入输出流等)

    Buffered streams、File streams、Object streams等都是I/O流的重要组成部分。 综上所述,这份Java学习资料涵盖了从基础到高级的多个主题,包括基本语法、面向对象编程、异常处理、Applet、GUI设计、多线程以及输入...

    dbcp,c3p0,io

    Java IO库提供了各种类型的流,如字节流(Byte Streams)和字符流(Character Streams),以及缓冲流(Buffered Streams)、转换流(InputStreamReader/OutputStreamWriter)和对象流(Object Streams)等。...

    J2SE中流 ,异常 的个人总结

    4. 对象流(Object Streams): - ObjectOutputStream 用于序列化对象到流中。 - ObjectInputStream 用于从流中反序列化对象。 5. 转换流(桥梁): - InputStreamReader 和 OutputStreamWriter 将字节流转换为...

    PDF文件主结构解析终极测试版

    5. **对象流**(Object Streams,自PDF 1.5版起):为了减少文件大小,PDF引入了对象流,允许多个对象紧凑地存储在一起,称为对象流(ObjStm)。对象流可以包含多个对象,它们被编码并压缩,从而节省空间。 6. **...

    详细说明了PDF文件结构

    对象流(Object Streams) - **定义与作用**:对象流是一种特殊的流对象,它允许将多个PDF对象打包成一个流,并进行压缩,以减少文件大小。 - **限制**:不是所有对象都可以放入对象流中,例如流对象本身、生成...

    Testinside 310-027 最新更新

    - **Essay#1C**:这个问题要求考生选择客户端服务器连接的方式——对象流(Object Streams)或远程方法调用(RMI),并解释选择的理由及其优缺点。 - **对象流**:是一种序列化机制,用于在网络上传输对象。 - **RMI**...

    antlr v2.7.4 manual

    - **Heterogeneous Token Object Streams**:异构标记对象流。 - **Filtering InputStreams**:过滤输入流。 - **ANTLR Masquerading as SED**:ANTLR 模拟 SED 工具。 - **Nongreedy Subrules**、**Greedy ...

    Oracle Streams Step by Step PPT

    AQ支持多种消息类型,包括Raw、XML、Object和Anydata,并且与Oracle的多种API兼容,如OCI(C)、OCCI(C++)、Java JMS、PL/SQL、OO40(COM)、Internet Data Access (IDAP)以及通过异构网关的ODBC。 Change Data ...

Global site tag (gtag.js) - Google Analytics