简单Java程序向实用程序的过度:二进制文件的读写
File I/O中常见的文件读写:
1.字节流读写文本文件
FileInputStream;
FileOutputStream;
2.字符流读写文本文件
FileReader;
FileWriter;
BufferedReader;
BufferedWriter;
3.二进制读写文件
DataInputStream;
DataOutputStream;
这里重点介绍二进制文件的读写:
一、使用字节流类DataInputStream读写二进制文件
DataInputStream类是FileInputstream的子类,它是FileInputStream类的扩展。
利用DataInputStream类读取二进制文件要使用到FileInputStream类。
具体操作步骤:
1)引入相关的类
2)构造一个数据流对象
3)利用数据输入流类的方法读取二进制文件的数据
dis.read();//读取字节数据
4)关闭数据输入流
dis.close();//关闭数据输入流
二、使用字节流类DataOutputStream写二进制文件
DataOutputStream类是FileOutputStream的子类,需要用到FileOutputStream类。
具体操作步骤:
1)引入相关的类
2)构造一个数据输出流对象
3)利用数据输出流类的方法写二进制文件的数据
out.write(1);//将指定字节数据写入二进制文件
4)关闭数据输出流
out.close();
三、编写一个Java程序读取windows目录下的win.ini文件,并输出其内容
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException; /**
* 编写一个Java程序读取windows目录下的win.ini文件,并输出其内容
* @author Administrator
*
*/
public class Test041 { public static void main(String[] args) {
DataInputStream dis = null;
try {
/*创建二进制输入流*/
dis = new DataInputStream(new FileInputStream("C:\\windows\\win.ini")); /*循环读取并输出信息*/
int temp;
while((temp=dis.read())!=-1){
System.out.print((char)temp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{
if (dis!=null) {
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} } }
四、DataInputStream类与DataOutputStream类搭配使用,可以按照与平台无关的方式从流中读取基本数据类型的数据
1.DataInputStream的readUTF()方法能读取采用utf-8字符编码的字符串;
2.DataOutputStream的writeUTF()方法能写入采用utf-8字符编码的字符串;
test:复制图片
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; /**
* 复制图片(二进制字节流)
* @author Administrator
*
*/
public class Test004 { public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
DataInputStream dis = null;
DataOutputStream dos = null;
try {
//创建输入流
fis = new FileInputStream("D:\\tengyicheng\\timg.jpg");
dis = new DataInputStream(fis);
//创建输出流
fos = new FileOutputStream("D:\\tengyicheng\\myFile\\timg.jpg");
dos = new DataOutputStream(fos);
//循环读取录入
int temp;
while((temp = dis.read())!=-1){
dos.write(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
if (fis!=null) {
fis.close();
}
if (fos!=null) {
fos.close();
}
if (dis!=null) {
dis.close();
}
if (dos!=null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} } }
简单Java程序向实用程序的过度:二进制文件的读写的更多相关文章
- Java程序员的日常—— Properties文件的读写
在日常的Java程序开发中,Properties文件的读写是很常用的.经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整. 那么本片就来简单的介绍下,如何使用Prop ...
- Linux环境下运行简单java程序
一.安装java 1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315 ...
- java拾遗4----一个简单java程序的运行全过程
简单说来,一个java程序的运行需要编辑源码.编译生成class文件.加载class文件.解释或编译运行class中的字节码指令. 下面有一段简单的java源码,通过它来看一下java程序的运行流程: ...
- eclipse 运行简单JAVA程序事例
开发JAVA已经有一段时间了,不过要运行JAVA程序,还是在命令行敲命令,很不方便,很麻烦,突然想到eclipse应该也有这个功能,于是百度了一下,将步骤晒出来,供大家参考. 1.创建JAVA工程 单 ...
- 简单java在线测评程序
简单java程序在线测评程序 一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. 二.思路 ...
- 【并发编程】一个最简单的Java程序有多少线程?
一个最简单的Java程序有多少线程? 通过下面程序可以计算出当前程序的线程总数. import java.lang.management.ManagementFactory; import java. ...
- 编译运行第一个Java程序——通过示例学习Java编程3
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=13 在本教程中,我们将了解如何编写.编译和运行Ja ...
- 在ORACLE触发器里调用JAVA程序
因为项目需要,有一个已经写好的Java程序,想要在Oracle某个表的触发器中调用,以使得每次数据更新时,调用这个JAVA程序,来修改后台某个数据. 现将过程记录如下: 1.编写JAVA程序 publ ...
- java基础学习02(简单的java程序)
简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 ...
随机推荐
- 【ARC075F】Mirrored 搜索/数位dp
Description 给定正整数DD,求有多少个正整数NN,满足rev(N)=N+Drev(N)=N+D,其中rev(N)rev(N)表示将NN的十进制表示翻转来读得到的数 Input 一个 ...
- SDUT OJ 数据结构实验之链表四:有序链表的归并
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...
- python学习之路---day07
一:先看什么事赋值? 以例子举例说明:. a=[1,2,3,[11,22,33]] b=a print(b) -->b=[1,2,3,[11,22,33]] 01):赋值 浅拷贝:我们创建a时, ...
- 记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration
今天遇到的一个问题: 代码检查了好几次,都没有错误,但是启动时就会报错Consider defining a bean of type ''' in your configuration. 启动类在c ...
- C++_类继承1-从一个简单的类开始
面向对象编程的主要目的之一是:提供可重用的代码.尤其是项目很庞大的时候,重用测试过的代码比重新编码代码要好得多. C++提供了更高层次的重用性.其中之一就是继承这个概念. 一些厂商提供了类库.类库由类 ...
- LeetCode153.寻找旋转排序数组中的最小值
153.寻找旋转排序数组中的最小值 描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 请找出 ...
- URL 地址传中文,转码
地址传中文,转码 http://community.csdn.net/Expert/topic/4541/4541877.xml?temp=.57688541.设置web.config文件.<s ...
- bzoj 1085骑士精神 迭代深搜
题目传送门 题目大意:给出一幅棋盘,问能否复原,中文题面,不做解释. 思路:第一次写迭代深搜的题目,这道题还是挺经典的.这道题的状态很明显的每多搜一层就是多八倍,非常的多,而且又是t组输入,所以必定有 ...
- 牛客小白月赛5 I - 区间
看到一份不错的操作..... 链接:https://www.nowcoder.com/acm/contest/135/I 来源:牛客网 Apojacsleam喜欢数组. 他现在有一个n个元素的数组a, ...
- 转: centos系统home下的中文目录改为英文目录
转自h t t p : / /xugang-1017-126-com.iteye.com/blog/2081845 如果安装了中文版的Cent OS之后,root目录和home目录下会出现中文的路径名 ...