简单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定义变量或声明变量 ...
随机推荐
- php代码审计10审计会话认证漏洞
挖掘经验:遇到的比较多的就是出现在cookie验证上面,通常是没有使用session来认证,直接将用户信息保存在cookie中 Session固定攻击:黑客固定住目标用户的session i ...
- ClickOnce发布包含某文件
第一步.在文件上右键选择“属性”,“复制到输出目录”选择“始终复制”: 第二步.“生成操作”选择“选择”: 第三步.通过 项目右键属性-发布-应用程序文件 查看想要包含的文件是否包含进来了. 注:可以 ...
- 洛谷P4724 【模板】三维凸包
题面 传送门 题解 先理一下关于立体几何的基本芝士好了--顺便全都是从\(xzy\)巨巨的博客上抄来的 加减 三维向量加减和二维向量一样 模长 \(|a|=\sqrt{x^2+y^2+z^2}\) 点 ...
- 洛谷P2566 [SCOI2009]围豆豆(状压dp+计算几何)
题面 传送门 题解 首先要解决一个问题,就是怎么判断一个点是否在多边形内部 从这个点向某一个方向做一条射线,如果这条射线和多边形的交点为奇数说明在多边形内,否则在多边形外 然而有一些特殊情况,比方说一 ...
- 洛谷P2761 软件补丁问题(状压dp)
传送门 啊咧……这题不是网络流二十四题么……为啥是个状压dp…… 把每一个漏洞看成一个状态,直接硬上状压dp 然后因为有后效型,得用spfa //minamoto #include<iostre ...
- UML之用例图详解
原文链接:https://blog.csdn.net/mj_ww/article/details/53020080 UML,即Unified Model Language,统一建模语言.百度百科对他的 ...
- 设置placeholder的样式
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #f00; } ::-moz-placeholder { /* Mozilla Fir ...
- Android StateListDrawable资源的使用(文本的高亮显示)
1.介绍 2.xml文件属性介绍 3.实例演示 <1>新建drawable文件 app--->src---->main---->res---->drawable , ...
- 数据结构5.4_m元多项式的表示
三元多项式表示如下: P(x,y,z) = x10y3z2 + 2x6y3z2 + 3x5y2z2 + x4y4z + 6x3y4z + 2yz + 15 然后对式子进行变形: P(x,y,z)=(( ...
- JAVA数据结构--插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in- ...