简单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文件,并输出其内容

 1 import java.io.DataInputStream;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.IOException;
 5
 6 /**
 7  * 编写一个Java程序读取windows目录下的win.ini文件,并输出其内容
 8  * @author Administrator
 9  *
10  */
11 public class Test041 {
12
13     public static void main(String[] args) {
14         DataInputStream dis = null;
15         try {
16             /*创建二进制输入流*/
17             dis = new DataInputStream(new FileInputStream("C:\\windows\\win.ini"));
18
19             /*循环读取并输出信息*/
20             int temp;
21             while((temp=dis.read())!=-1){
22                 System.out.print((char)temp);
23             }
24         } catch (FileNotFoundException e) {
25             e.printStackTrace();
26         } catch (IOException e) {
27             e.printStackTrace();
28         }
29         finally{
30             if (dis!=null) {
31                 try {
32                     dis.close();
33                 } catch (IOException e) {
34                     e.printStackTrace();
35                 }
36             }
37         }
38
39     }
40
41 }

四、DataInputStream类与DataOutputStream类搭配使用,可以按照与平台无关的方式从流中读取基本数据类型的数据

1.DataInputStream的readUTF()方法能读取采用utf-8字符编码的字符串;

2.DataOutputStream的writeUTF()方法能写入采用utf-8字符编码的字符串;

test:复制图片

 1 import java.io.DataInputStream;
 2 import java.io.DataOutputStream;
 3 import java.io.FileInputStream;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6
 7 /**
 8  * 复制图片(二进制字节流)
 9  * @author Administrator
10  *
11  */
12 public class Test004 {
13
14     public static void main(String[] args) {
15         FileInputStream fis = null;
16         FileOutputStream fos = null;
17         DataInputStream dis = null;
18         DataOutputStream dos = null;
19         try {
20             //创建输入流
21             fis = new FileInputStream("D:\\tengyicheng\\timg.jpg");
22             dis = new DataInputStream(fis);
23             //创建输出流
24             fos = new FileOutputStream("D:\\tengyicheng\\myFile\\timg.jpg");
25             dos = new DataOutputStream(fos);
26             //循环读取录入
27             int temp;
28             while((temp = dis.read())!=-1){
29                 dos.write(temp);
30             }
31         } catch (IOException e) {
32             e.printStackTrace();
33         }
34         finally{
35             try {
36                 if (fis!=null) {
37                     fis.close();
38                 }
39                 if (fos!=null) {
40                     fos.close();
41                 }
42                 if (dis!=null) {
43                     dis.close();
44                 }
45                 if (dos!=null) {
46                     dos.close();
47                 }
48             } catch (IOException e) {
49                 e.printStackTrace();
50             }
51         }
52
53     }
54
55 }
时间: 2024-11-11 00:27:45

简单Java程序向实用程序的过度:二进制文件的读写的相关文章

java拾遗4----一个简单java程序的运行全过程

简单说来,一个java程序的运行需要编辑源码.编译生成class文件.加载class文件.解释或编译运行class中的字节码指令. 下面有一段简单的java源码,通过它来看一下java程序的运行流程: 1 class Person 2 3 { 4 5 private String name; 6 7 private int age; 8 9 10 11 public Person(int age, String name){ 12 13 this.age = age; 14 15 this.na

一个简单java程序模拟与Mysql Server建立连接及发送查询SQL

使用普通socket来模拟与Mysql Server建立连接及发送查询SQL,如下代码所示: Socket socket = new  Socket("127.0.0.1",3306); OutputStream out = socket.getOutputStream(); BufferedOutputStream bos = new BufferedOutputStream(out); //建立连接报文信息 来自wireshark(捕捉终端执行mysql -u root -p -h

在ORACLE触发器里调用JAVA程序

因为项目需要,有一个已经写好的Java程序,想要在Oracle某个表的触发器中调用,以使得每次数据更新时,调用这个JAVA程序,来修改后台某个数据. 现将过程记录如下: 1.编写JAVA程序 [java] view plain copy public class Main { public static void modify(String statTime) { String datas = "/var/spool/cron/oracle"; File data = new File

一个简单的Java程序

一个.NET技术还是很菜的水平的猿人现在要去学习Java不知道是坏是好,无从得知啊! 不过在网上看了好多Java方面的简单例子,感觉Java还是蛮不错的么!不管以后怎么样啦,先开始自己的Java菜鸟之旅吧! 建立一个Java项目,建立一个属于自己的包,然后就开始自己的Java之旅... 创建的时候勾上这个生成main方法的选项,这个好像类似与我们.Net程序里控制台程序有木有.... 创建完成后就是这么一个样子,可以看到我们的包,还有给我们创建好自己的类,并且带了一个静态的main方法咋看就像.

java 程序执行输出有两种简单方式

java 程序执行输出有两种简单方式: 1. System.out.println("需要输出的内容"): 该方法可参看运行一个简单的Java程序 结果图: 2. System.out.print("需要输出的内容"): 1 public class HelloWorld 2 { 3 //Java程序的入口方法,程序将从这里开始运行 4 public static void main(String[] args) 5 { 6 //向控制台打印一条语句 7 Syste

java基础学习02(简单的java程序)

简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 二.一个简单的java程序 public class TestJava{ public static void main(String [] args){ //操作一个简单的范例,输出和乘方 int num = 10; //定义一个整型变量 num = 30; //修改变量 System.out.p

Linux环境下部署完JDK后运行一个简单的Java程序

前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version"命令是否有正确的内容打印,也许这并不具备太大的说服力.可能能够运行起一个正确的java程序来,不管从感性角度还是理性角度来说,都会有一个更好的认识. 所以本文写一段很简单的java代码,并且在Linux环境下编译运行,以证明JDK部署得确实没有问题. 代码验证JDK部署是否正确 1.级联建立两个目录 首

Java 程序代码书写风格及一些简单的注意事项 (

1. 风格务必保持一贯性(Consistent) 一位同胞顶着我的鼻子问,为什么我们的Java代码缩进格式非得是这样,而不能是他那样,他就是喜欢他自己的这一种,因此他写的代码总是用他自己习惯的风格.结果在Code Review里被大家毙掉,责令修改.因此他是大大地不服.就是风格一贯性问题.其实他的风格,本来也没有什么问题,但在项目里,和其他程序员的程序的风 格,显得扃异,那就存在问题了.比如这个缩进,又比如变量命名方法,不同的类,不同的Methods里,各自不同,这程序就很难看了.所以一旦你选择

一个简单的Java程序例子以及其几种注释

在说道主题前,先来啰嗦两句,o()︿︶)o 唉,不说两句心里就有个疙瘩,也许这就是所谓的强迫症吧,好了说说我想啰嗦的,其实也就是这样子的,关于Java开发工具箱的下载以及环境的配置.Java的下载进入到oracle官网下载即可(具体的步骤就不赘述了如今网络资源丰富你懂得),下载好之后然后开始安装,根据安装过程中的说明进行下一步直至完成即可,等等不要激动,还没完了,要开始配置Java的开发环境(说明下我这说的只是正对window操作系统的),其实也很简单,就是对着桌面上的”我的电脑”鼠标右键带点击