DataInputStream,DateOutputStream分别叫做数据输入流和数据输出流。
补充结构图:
构造函数:
DataInputStream(InputStream in)
DataOutputStream(OutputStream out)
文档描述:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
总而言之就是:它们能够将数据带有数据类型的存放和读取。
且读写的是二进制数据(不是字符串)
直接上代码:
package IO;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataInputStreamAndDataOutputStream {
public static void main(String[] args) throws FileNotFoundException {
try {
//创建DataOutputStream实例对象,构造函数需要传入OutputStream类型,我们传入它的子类FileOutputStream
DataOutputStream dos = new DataOutputStream(new FileOutputStream("F:/test03"));
//创建DataInputStream实例对象,构造函数需要传入InputStream类型,我们传入它的子类FileInputStream
DataInputStream dis = new DataInputStream(new FileInputStream("F:/test03"));
int t1=1;
long t2=2l;
double t3=2.1;
//分别写入int long double类型的值
dos.writeInt(t1);
dos.writeLong(t2);
dos.writeDouble(t3);
//读
int a1=dis.readInt();
long a2=dis.readLong();
double a3=dis.readDouble();
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
//刷新,关闭
dos.flush();
dis.close();
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面的一定要先写,然后读,也就是先实例化DataOutputStream再实例化DataInputStream,这否则会出现NotFoundException。