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();
}
} }
Java从零开始学三十七(JAVA IO- 二进制文件读写)的更多相关文章
- Java从零开始学三十三(JAVA IO- File类)
一.简述 在整个io包中,唯一表示与文件本身有关的类就是File类.使用File类可以进行创建或删除文件等常用操作.要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示: ...
- Java从零开始学四十七(注解简述)
一.Java中注解Annotation 什么是注解:用来描述数据的数据(元数据). Java代码里的特殊标记.它为代码中添加用Java程序无法表达的额外信息提供一种形式化的方法,使用我们可以在未来的某 ...
- Java从零开始学三十二(正则表达式)
一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完 ...
- Java从零开始学三十八(JAVA IO- 重定向IO)
一.三个静态变量 java.lang.System提供了三个静态变量 System.in(默认键盘) System.out(默认显示器) System.err 二.重写向方法 System提供了三个重 ...
- Java从零开始学三十九(对象序列化)
一.序列化 将对象的状态存储到特定存储介质中的过程 对象序列化,就是把一个对象变为二进制的数据流的一种方法,通过对象序列化可以方便的实现对象的传输或存储. 序列化保存对象的“全景图”,构建对象的“ ...
- Java从零开始学三十六(JAVA IO- 字符流)
一.字符流 BufferedReader:BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中 BufferedWriter:把一批数据写入到缓冲区,当缓冲区区的 ...
- Java从零开始学三十五(JAVA IO- 字节流)
一.字节流 FileOutputStream是OutputStream 的直接子类 FileInputStream也是InputStream的直接子类 二.文本文件的读写 2.1.字节输入流 Test ...
- Java从零开始学三十三四(JAVA IO-流简述)
一.流概念(stream) File类并不能对文件内容进行读写. 读文件就是指:把文件的内中的数据读取到内存中来 写文件就是指:把内存中的数据写入到文件中去. 通过什么读写文件呢?文件流. 1.1.流 ...
- Java从零开始学三十一(DATE和Calendar类)
一.Date类 Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期 二.Calendar类 Calendar类可以将取得的 ...
随机推荐
- Xcode 小技巧
1.手动添加 #warning ,在不确定的 bug.错误.待定代码处,手动添加 #warning 行,在编译时间提醒自己需要处理的地方. 2.由于 arrayWithObjects: 和 initW ...
- Shell中EOF内容转义
1.在$符号前面加反斜杠,如: cat > test.sh <<EOF \$test EOF 如果不加,将转成实际的值. 2.给EOF加个双引号,如: cat > test.s ...
- Linux下以特定用户运行命令
方法汇总: 1.su 2.sudo 3.runuser 比较常用的方式:su 示例:su - root -s /bin/sh -c "/usr/local/nginx/sbin/nginx& ...
- [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 ...
- python类型比较的3种方式(转)
通过types模块的类成员来判断,其实所有python中的类型都是这个types模块中类型的实例. import types type(x) is types.IntType # 判断是否int 类型 ...
- cuda并行编程之求解ConjugateGradient(共轭梯度迭代)丢失dll解决方式
在进行图像处理过程中,我们常常会用到梯度迭代求解大型线性方程组.今天在用cuda对神秘矩阵进行求解的时候.出现了缺少dll的情况: 报错例如以下图: watermark/2/text/aHR0cDov ...
- 3.3V与5V电平双向转换
http://www.amobbs.com/thread-5541344-1-2.html 3.3V转5V:S3输入为0V时,NMOS管导通,S5=S3=0V:S3输入为3.3V时,NMOS管截止,S ...
- ICD2 VPP limiter for new PIC microcontrollers.
http://www.circuitsathome.com/mcu/pic_vpp_limiter VOUT = 2.5V * ( 1 + 24/10 ) = 2.5 * 3.4 = 8.5V New ...
- 开启PowerDesigner15工具栏上的被禁用掉的图标
PowerDesigner 15 的版本,工具栏上的Inheritance图标默认是禁用的,如下图所示:
- Apple Developer Registration and DUNS Number Not Accepted
Now that I have my Mac and app source code. I’m ready to start working on my first app. The next ste ...