简单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定义变量或声明变量 ...
随机推荐
- JVM之类加载机制
JVM之类加载机制 JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程. 类加载五部分 加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这 ...
- Django 实现购物车功能
购物车思路:使用 session 功能识别不同浏览器用户,使得用户不管是否登录了网站,均能够把想要购买的产品放在某个地方,之后随时可以显示或修改要购买的产品,等确定了之后再下订单,购物车可以用来暂存商 ...
- HDU6299-2018ACM暑假多校联合训练1002-Balanced Sequence
这个题的题意是给你n个字符串,认定()是一种平衡的串,两个以上连续的()()也是一种平衡的串,如果一对括号里面包含一个平衡的串,这个括号也被算在这个平衡的串之内, 如(()(()))是一个长度为8的平 ...
- python3入门之字典
获得更多资料欢迎进入我的网站或者 csdn或者博客园 本节主要介绍字典,字典也成映射,时python中唯一内建的映射类型.更多详细请点击readmore.下面附有之前的文章: python入门之字符串 ...
- 【离散数学】 SDUT OJ 哪款赛车最佳?
哪款赛车最佳? Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 四名专家对四款赛车进行 ...
- 微信小程序之页面之间传递值
页面之间传值有三种方式 1.url传值 2.本地存储传值 3.全局变量传值 1.url传值: 通过url传值的需要通过option来获取参数值. 更多详情可以访问小程序-navigateTo章节. A ...
- python之time和datetime的常用方法
python之time和datetime的常用方法 一.time的常用方法: import time,datetime # 时间有三种展现方式:时间戳,时间元组,格式化的时间print(time. ...
- 【转】idea中maven模块编程灰色
可能是设置中模块的pom.xml文件被忽略了 去掉对勾 转自:https://blog.csdn.net/ethan__xu/article/details/80794060
- Android配置横屏资源与Activity生命周期
屏幕旋转会改变设备配置(device configguration).设备设置的特征有:屏幕方向.屏幕像素密度.屏幕尺寸.键盘类型.底座模式以及语言等. 当屏幕发现旋转时(设备配置更改),And ...
- LeetCode记录之9——Palindrome Number
LeetCode真是个好东西,本来闲了一下午不想看书,感觉太荒废时间了就来刷一道题.能力有限,先把easy的题目给刷完. Determine whether an integer is a palin ...