一、简述

二、使用步骤

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

Java从零开始学三十七(JAVA IO- 二进制文件读写)的更多相关文章

  1. Java从零开始学三十三(JAVA IO- File类)

    一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: ...

  2. Java从零开始学四十七(注解简述)

    一.Java中注解Annotation 什么是注解:用来描述数据的数据(元数据). Java代码里的特殊标记.它为代码中添加用Java程序无法表达的额外信息提供一种形式化的方法,使用我们可以在未来的某 ...

  3. Java从零开始学三十二(正则表达式)

    一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...

  4. Java从零开始学三十八(JAVA IO- 重定向IO)

    一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重 ...

  5. Java从零开始学三十九(对象序列化)

    一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储.   序列化保存对象的“全景图”,构建对象的“ ...

  6. Java从零开始学三十六(JAVA IO- 字符流)

    一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...

  7. Java从零开始学三十五(JAVA IO- 字节流)

    一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...

  8. Java从零开始学三十三四(JAVA IO-流简述)

    一.流概念(stream) File类并不能对文件内容进行读写. 读文件就是指:把文件的内中的数据读取到内存中来 写文件就是指:把内存中的数据写入到文件中去. 通过什么读写文件呢?文件流. 1.1.流 ...

  9. Java从零开始学三十一(DATE和Calendar类)

    一.Date类 Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 二.Calendar类 Calendar类可以将取得的 ...

随机推荐

  1. [Dynamic Language] pyspark Python3.7环境设置 及py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe解决!

    pyspark Python3.7环境设置 及py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spa ...

  2. [置顶] iOS中让省略号垂直居中

    在显示等待框时,一般要求在提示信息后面加个省略号,但中文输入法下输入的省略号是在底部对齐,但中 文的习惯是省略号垂直居中对齐,最后找到下面这个方法来显示垂直居中的省略号: 中文和英文输入法下一样: o ...

  3. 探究Linux下参数传递及查看和修改方法

    http://m.blog.csdn.net/blog/moonvs2010/11392959

  4. MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹

    为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...

  5. MVC文件上传01-使用jquery异步上传并客户端验证类型和大小

    本篇体验MVC上传文件,从表单上传过渡到jquery异步上传. MVC最基本的上传文件是通过form表单提交方式 □ 前台视图部分 <% using(Html.BeginForm("F ...

  6. nginx简单代理配置

    原文:https://my.oschina.net/wangnian/blog/791294 前言  Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器, ...

  7. 获取WINDOWS打印机列表

    获取WINDOWS打印机列表 如何知道WINDOWS已经安装了哪些打印机? 1) usesVcl.Printers 2) Printer.Printers  // property Printers: ...

  8. 使用POI操作Excel时对事先写入模板的公式强制执行

    场景:POI读取Excel模板. 当使用POI操作Excel时,发现由POI生成的公式能够在打开Excel是被执行, 而事先手工写入Excel模板文件的公式则不自动被调用,必须手动双击该Cell才能生 ...

  9. Android之开源中国客户端源码分析(一)

    程序启动第一个界面类: net.oschina.app.AppStart功能描述:一张图片代码细节描述:一个透明度的动画效果,效果动画完成后自动启动新的Activity(Main) 基本BaseAct ...

  10. 用Spark向HBase中插入数据

    java代码如下: package db.insert; import java.util.Iterator; import java.util.StringTokenizer; import org ...