Object Streams

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个引用

你可能感兴趣的:(java,html,sun)