java 写文件 二进制_简单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 importjava.io.DataInputStream;2 importjava.io.FileInputStream;3 importjava.io.FileNotFoundException;4 importjava.io.IOException;5

6 /**

7 * 编写一个Java程序读取windows目录下的win.ini文件,并输出其内容8 *@authorAdministrator9 *10 */

11 public classTest041 {12

13 public static voidmain(String[] args) {14 DataInputStream dis = null;15 try{16 /*创建二进制输入流*/

17 dis = new DataInputStream(new FileInputStream("C:\\windows\\win.ini"));18

19 /*循环读取并输出信息*/

20 inttemp;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 importjava.io.DataInputStream;2 importjava.io.DataOutputStream;3 importjava.io.FileInputStream;4 importjava.io.FileOutputStream;5 importjava.io.IOException;6

7 /**

8 * 复制图片(二进制字节流)9 *@authorAdministrator10 *11 */

12 public classTest004 {13

14 public static voidmain(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 = newDataInputStream(fis);23 //创建输出流

24 fos = new FileOutputStream("D:\\tengyicheng\\myFile\\timg.jpg");25 dos = newDataOutputStream(fos);26 //循环读取录入

27 inttemp;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 }

你可能感兴趣的:(java,写文件,二进制)