Fork me on GitHub

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

}

 

posted @ 2015-03-02 01:37  森林森  阅读(2513)  评论(0编辑  收藏  举报