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 写文件 二进制_简单Java程序向实用程序的过度:二进制文件的读写相关推荐

  1. 写文件 追加_总结Java中创建并写文件的5种方式

    在Java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面小编就帮大家总结一下Java中创建文件的五种方法. 在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者 ...

  2. 用java写一个日历_使用JAVA写一个简单的日历

    JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...

  3. java 写文件 并发_记录一次Java文件锁引起的并发写文件问题

    背景 刚接手新项目,该项目是高并发的游戏日志服务端存储,一个项目适配多个游戏,很多特殊需求要兼容,刚开始接手,需要修复很多管道的数据,存储管道有两个,分别是MySQL和HDFS,数据消费自Kafka, ...

  4. java 大文件 处理_用Java处理大文件

    java 大文件 处理 我最近不得不处理一组包含历史逐笔交易的外汇市场数据的文件,并很快意识到使用传统的InputStream都无法将它们读取到内存中,因为每个文件的大小都超过4 GB. Emacs甚 ...

  5. java爬虫自动识别验证码_简单Java爬虫(一)爬取手机号码

    原创 野狗菌 希望你能喜欢 今天 关于本文: 本文介绍一个简单Java爬虫,获取网页源码,爬取电话号码. 本篇教程用我的博客一个测试网页演示. --野狗菌[希望你能喜欢] 测试页面: https:// ...

  6. java 扫描文件测试_适用于Java开发人员的微服务:安全测试和扫描

    java 扫描文件测试 1.简介 本教程的这一部分专门讨论安全性测试,将围绕被证明在软件开发领域(包括微服务 )中无价的测试策略进行总结. 尽管软件项目中的安全方面每天都变得越来越重要,但是令人惊讶的 ...

  7. java界面 文件选择器_掌握java技术 必备java工具应用知识

    在现如今的互联网时代里,Java无疑是一种极为流行的开发语言,无论是程序界还是整个互联网行业势必带来很大的影响.不管是人才需求还是薪资水平上,Java的发展前景都是很乐观的.关于Java的一些常用的工 ...

  8. java压缩文件读取_用Java读取/写入压缩和非压缩文件

    java压缩文件读取 这篇文章的主要原因是尝试不要重复自己( DRY ),因为通常,我会遇到递归的需求,即读写压缩的和非压缩的文件(主要是JSON和CSV). 首先让我们看看如何读取文本文件. 注意我 ...

  9. java判断文件结束_关于java读取文件时,如何判断读取文件是否到达末尾?

    一.前言 java读取文件时,如果到达文件末尾,再进行读取时会发生异常,所以我们需要判断读取文件已经到达末尾.对于文件读取我们通常会采用不同的读取方式,如用InputStream流读取字节流.用Rea ...

最新文章

  1. 推荐系统——开源代码
  2. javascript创建类_如何使用JavaScript创建吹气效果
  3. 了解如何使用Yii2 PHP框架创建YouTube克隆
  4. javascript 校验 非空_Javascript的表单与验证-非空验证
  5. IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
  6. linux用户开启xftp,XFTP如何连接LINUX虚拟机
  7. 最小上界sup(来自wiki)
  8. Android网页字体缩放控件,Zoom Text Only插件下载-chrome网页字体缩放插件Zoom Text Only下载v1.5.4 官方版-西西软件下载...
  9. android弹球动画,FlingAnimation/SpringAnimation实现弹球动画
  10. 超详细 LaTex数学公式
  11. 实现极致节能,维谛技术(Vertiv)有哪些特殊技能?
  12. Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW)
  13. HTML设计网页之网页头部
  14. netcore 开源cms
  15. 高性能RabbitMQ消息队列介绍 及 SpringBoot整合
  16. 使用 Mapbox 在 Vue 中开发一个地理信息定位应用
  17. 史上最详细的maven仓库详解
  18. MFC 加载jpg等图片
  19. 从银行角度看二代征信
  20. sheet.js插件解析excel数据

热门文章

  1. DACE- a matlab Kriging toolbox
  2. C#操作GDAL——(1)空间参考相关
  3. 动态gmm模型学习笔记3-动态面板回归的GMM方法
  4. 项目管理软件排行榜!盘点前十名!
  5. Cray推出开源大数据一体机Urika-GX
  6. 学习STM32单片机之结构体思想
  7. 这是浙江大学郑强教授的经典语录 虽然我不完全赞同但对他的精神佩服的五体投地
  8. iOS开发 01-前言 03前景和难易度分析
  9. 计算几何之 点在直线上的投影 代码模板与证明
  10. 深度学习模型压缩与优化方法