全屏

10.2.6 数据流


【专业IT培训机构,真正零首付入学www.bjsxt.com


      数据流将“基本数据类型与字符串类型”作为数据源,从而允许程序以与机器无关的方式从底层输入输出流中操作Java基本数据类型与字符串类型。

      DataInputStream和DataOutputStream提供了可以存取与机器无关的所有Java基础类型数据(如:int、double、String等)的方法。

      DataInputStream和DataOutputStream是处理流,可以对其他节点流或处理流进行包装,增加一些更灵活、更高效的功能。

【示例10-10】DataInputStream和DataOutputStream的使用

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

public class TestDataStream {
	public static void main(String[] args) {
		DataOutputStream dos = null;
		DataInputStream dis = null;
		FileOutputStream fos = null;
		FileInputStream  fis = null;
		try {
			fos = new FileOutputStream("D:/data.txt");
			fis = new FileInputStream("D:/data.txt");
			//使用数据流对缓冲流进行包装,新增缓冲功能
			dos = new DataOutputStream(new BufferedOutputStream(fos));
			dis = new DataInputStream(new BufferedInputStream(fis));
			//将如下数据写入到文件中
			dos.writeChar('a');
			dos.writeInt(10);
			dos.writeDouble(Math.random());
			dos.writeBoolean(true);
			dos.writeUTF("北京尚学堂");
			//手动刷新缓冲区:将流中数据写入到文件中
			dos.flush();
			//直接读取数据:读取的顺序要与写入的顺序一致,否则不能正确读取数据。
			System.out.println("char: " + dis.readChar());
			System.out.println("int: " + dis.readInt());
			System.out.println("double: " + dis.readDouble());
			System.out.println("boolean: " + dis.readBoolean());
			System.out.println("String: " + dis.readUTF());
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if(dos!=null){
					dos.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				if(dis!=null){
					dis.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				if(fos!=null){
					fos.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				if(fis!=null){
					fis.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

      执行结果如图10-15所示:

图10-15 示例10-10运行效果图.png

图10-15 示例10-10运行效果图

菜鸟雷区

使用数据流时,读取的顺序一定要与写入的顺序一致,否则不能正确读取数据。

分类导航
点击按住视频可拖动

缩小

关闭

  • 正在学习
  • 北京总部地址:北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
  • 咨询电话:400-009-1906 010-56233821
  • Copyright 2007-2015 北京尚学堂科技有限公司
  • 京ICP备13018289号-1 京公网安备11010802015183