Java从零开始学三十七(JAVA IO- 二进制文件读写)
一、简述
二、使用步骤
DataInputStream:
- 引入相关的类
- 构造数据输入流的对象(如:FileInputStream,BufferedWriter包装后读取文件等)
- 读取二进制文件的数据
- 关闭数据输入流
DataOutputStream:
- 引入相关的类
- 构造数据输出流的对象(如:FileOputStream,BufferedWriter包装后写入文件等)
- 写入二进制文件的数据
- 关闭数据输入流
三、使用
package com.pb.data; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /* * DataInputStream 和DataOutputStream的使用 */ public class DataInputAndOutput { public static void main(String[] args) { /* * DataOutputStream写操作 */ try { //1.实例化FileOutputStream对象 FileOutputStream fos=new FileOutputStream("d:/test/data.txt"); //2.实例化BuffereOutputStream 对象 BufferedOutputStream bos=new BufferedOutputStream(fos); //3.实例化DataOutputStream对象 DataOutputStream dos=new DataOutputStream(bos); //4.使用dos来写文件 dos.writeByte(1); dos.writeLong(2); dos.writeChar('c'); dos.writeUTF("hello java!"); //关闭流 dos.close(); bos.close(); fos.close(); System.out.println("完成文件写入"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //因为写入的是二进制的所以看不明白 /* * DataIntputStream读操作 * 读的顺序要与写的顺序一样 */ System.out.println("=======开始读取文件========="); try { //1.实例化FileInputStream对象 FileInputStream fis=new FileInputStream("d:/test/data.txt"); //2.实例化BuffereInputStream对象 BufferedInputStream bis=new BufferedInputStream(fis); //3.实例化DataInputStream对象 DataInputStream dis=new DataInputStream(bis); //4.读取文件顺序要与写入顺序一致,不然读出来的是乱码 System.out.println( dis.readByte()); System.out.println( dis.readLong()); System.out.println(dis.readChar()); System.out.println( dis.readUTF()); //5.关闭流 dis.close(); bis.close(); fis.close(); System.out.println("读取文件完成!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }