专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 实例解析IO数据流用法

实例解析IO数据流用法

更新时间:2020-11-20 17:47:37 来源:星辉 浏览1119次

数据流(data stream)实际上是一组有序,有起点和终点的字节的数据序列。IO数据流包括输入流和输出流。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有一个合适的名字,以反映该数据流的含义。本文就来给大家普及一下IO数据流基本用法。


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

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

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

使用Data输出流写出数据后,再使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致,否则数据出现错乱。


一、使用数据输入流完成数据的读取操作

1.声明数据输入流对象

DataInputStream dataInputStream=null;

2.实例化数据输入流对象

dataInputStream=new DataInputStream(new FileInputStream(path));

3.完成数据的读取操作

byte b=dataInputStream.readByte();

short s=dataInputStream.readShort();

int i=dataInputStream.readInt();

long l=dataInputStream.readLong();

float f=dataInputStream.readFloat();

double d=dataInputStream.readDouble();

char ch=dataInputStream.readChar();

boolean bool=dataInputStream.readBoolean();

String content=dataInputStream.readUTF();

System.out.println("b="+b+",s="+s+",i="+i+",l="+l+",float="+f+",double="+d+",ch="+ch+",bool="+bool+",content="+content);


二、使用数据输出流完成对Java八大基本数据类型及其String数据类型的写出功能.

1.声明数据输出流对象

DataOutputStream dataOutputStream=null;

2.实例化数据输出流对象

dataOutputStream=new DataOutputStream(new FileOutputStream(path));

3.将java八大基本数据类型及其String数据类型写出到指定的文件中

dataOutputStream.writeByte(5);

dataOutputStream.writeShort(10);

dataOutputStream.writeInt(15);

dataOutputStream.writeLong(20);

dataOutputStream.writeFloat(25.0f);

dataOutputStream.writeDouble(30.5d);

dataOutputStream.writeChar('a');

dataOutputStream.writeBoolean(false);

dataOutputStream.writeUTF("b");


三、DataInputStream和DataOutputStream的使用实例:

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();

}

}

}

}


以上就是IO数据流的基本用法,数据输入流和数据输出流需要配合使用的情况下,读取的顺序一定要与写入的顺序一致,否则不能正确读取数据。想要学习更多的IO流知识,请观看本站的Java基础教程,各种IO流的属性和用法这里应有尽有!


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>