java二进制的读写数据流

在数据流中有两个常用的类,主要是对二进制的读写进行操作,而且如果用其中一个输出,就必须配套使用里面的输入类才能实现,在读写效率上自然相较于以往其他操作更为有效率。下面我们就来看看DataInputStream和DataOutputStream这两个类的用法及使用事项,然后在代码中对二进制进行读写。

1.读写二进制文件

DataInputStream 和 DataOutputStream 是处理流,可以对其他节点流或处理流进行包装,增加一些更灵活、更高效的功能。只针对字节流(二进制文件)。

2.使用注意

第一,DataOutputStream输出的二进制流,必须使用DataInputStream读入,且各个变量的输出输出顺序必须相同;

第二,boolean,byte,short,char,int,long,float,double和String可以使用相应的write和read方法进行输出和输入,例如writeInt和readInt;

第三,输入输出字符串时使用readUTF和writeUTF,避免使用writeChars和wirteBytes等方法。因为writeUTF方法中将字符串长度一并保存,所以在readUTF中可以正确读取。

3.实例

public class TestDataStream2 {
public static void main(String[] args) {
DataInputStream dis = null;
DataOutputStream dos = null;
try {
                    //使用数据流对缓冲流进行包装,新增缓冲功能
dos = new DataOutputStream(new BufferedOutputStream(
                           new FileOutputStream("E:/data.txt")));
dis = new DataInputStream(new BufferedInputStream(
                           new FileInputStream("E:/data.txt")));
//将如下数据写入到文件中
dos.writeInt(97);
dos.writeDouble(3.14);
dos.writeBoolean(true);
dos.writeChar('a');
dos.writeUTF("hello");
//手动刷新缓冲区:将流中的数据写入到文件中!!!
dos.flush();
//直接读取数据:读取顺序要和写入的顺序一致
System.out.println("int:" + dis.readInt());
System.out.println("double:" + dis.readDouble());
System.out.println("boolean:" + dis.readBoolean());
System.out.println("char:" + dis.readChar());
System.out.println("String:" + dis.readUTF());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(dos != null)
dos.close();
if(dis != null)
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

以上就是java数据流进行二进制读写的办法,需要对数据流中输入和输出这两个基础类有很好的掌握,学会基础概念和注意要点后,就可以对二进制问题展开实战操作了。

本教程操作环境:windows7系统、java10版,DELL G3电脑。  1.reduce对于更细粒度的控制,有另一个流 API 函数,名为reduce,可用于对 Number 流中的值求和:Integer s ...