Java中的IO流之文件输入输出流

1、文件流介绍

文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流。文件流位于java.io包下。

输入输出流分别是FileInputSteam和FileOutputStream流。文件流的作用就是专门用来读写文件的。

文件流是基于流式读写的,而流式读写是一种顺序读写的形式,只能依次从文件开始,顺序向下读写文件,不能回退。

文件流属于低级流,但是可以串联高级流,完成一些复杂数据的读写操作。

2、文件输入流FileInputStream

<1>文件输入流常见构造方法

构造方法一:

FileInputStream(File file)

构造方法二:

FileInputStream(String name)

注:创建文件输入流对象时,如果对应的文件不存在,则会抛出文件找不到异常。

<2>文件输入流读取文件的方法

文件输入流读取文件的常用三个方法如下:

int read():一次只读取一个字节。

int read(byte[] b):一次读取一个字节数组的字节。

int read(byte[] b, int offset, int len):

一次读取len个字节,然后放入字节数组的offset下标开始处。

<3>使用文件输入流读取文件内容

这里以read(byte[] b)方法为例子。

测试结果:

注:使用字节数组读取的优点是可以提高读取效率。

3、文件输出流FileOutputStream

<1>文件输出流常见构造方法

文件输出流有两类写出方式,一类是覆盖写操作,另一类是追加写操作。

覆盖写:

FileOutputStream(File file)

FileOutputStream(String name)

追加写:

FileOutputStream(File file, boolean append)

FileOutputStream(String name, boolean append)

当文件输出流构造方法第二个参数为true时,则表示开启追加写方式。

<2>文件输出流写出文件的方法

和文件输入流一样,也有三个写出方法。分别如下:

void write():一次写出一个字节。

void write(byte[] b):一次写出一个字节数组。

void write(byte[] b, int offset, int len):把字节数组中从下标offset开始的字节写出文件,并且写出len个长度。

<3>文件输出流覆盖写操作

第一次写入数据:

结果如下:

第二次写入数据:

结果如下:

注:从两次写入数据的结果中可以看出,FileOutputStream的覆盖写操作,是将之前的数据清空后,然后在重新开始写入数据。

<4>文件输出流追加写操作

第一次写入数据:

结果如下:

第二次写入数据:

结果如下:

4、FOS类和RAF类覆盖方式不同之处

这里说明一下:FOS指代文件输出流FileOutputStream,而RAF则是指代RandomAccessFile类。

<1>RAF类的覆盖方式是,从文件开头开始,依次覆盖相应字节数据。

<2>FOS类的覆盖方式是,先把文件中的原有内容清空,然后在把新的内容写入文件。

综上,Java中IO流之文件输入输出流介绍完了。

这是我的第28篇文章,谢谢大家阅读。

java输出流输入流的使用_Java中的IO流之文件输入输出流相关推荐

  1. java 文件指定位置插入_java 中利用io流将一个文件插入到另一个文件中的指定位置,指定位置...

    展开全部 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.F ...

  2. Java基础(二):集合、IO流(Zip压缩输入/输出流等)、File文件类、反射、枚举

    Java基础(一):编译和解释.数据类型.变量作用域.String常用方法.数组.面向对象.异常 Java基础(二):集合.IO流(Zip压缩输入/输出流等).File文件类.反射.枚举 Java异常 ...

  3. java标准i o重定向_Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向...

    四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...

  4. 接收字节流_Java中的IO流之输入流|乐字节

    亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入 ...

  5. java io流顶层_Java中的IO流(一)

    一,IO流的分类 A,按照操作的对象不同可分为字节流与字符流 B,按照流的方向不同可分为输入(指从外部存储设备拿文件到内存)流也叫读与输出(指从内存把文件写入到外部存储设备)流也叫写 注:字节流可以操 ...

  6. java中io流是类吗_Java中的IO流

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

  7. java体系的四大基类_Java中的io流学习(了解四大基类和基本步骤)

    Java中io流四大基类及io流操作四大基本步骤 io流:(input/output)即输入输出流.面向对象的思想之一是面向接口编程,面向父类编程,也就是多态.所以学好基类(父类)很重要. 分类 按处 ...

  8. img src 文件流_Java中的IO流之输出流|乐字节

    大家好,乐字节小乐又来咯,上次讲到了IO流的输入流,本文将讲述Java输出流. Java输入输出流 一.输出流 1.抽象类:OutputStream 和 Writer OutputStream和Wri ...

  9. java中--《_Java中的IO流(五)

    当需要直接把信息输出到文件中的时候,并且想要每次输入完成后立即把信息输出到文件中,演示如下 1 private static void function_demo2() throwsIOExcepti ...

最新文章

  1. c++ lambda基本语法
  2. Python-函数和代码复用
  3. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐下象棋(记忆化搜索dp,dfs)
  4. 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) ....
  5. Warning:java: 来自注释处理程序 'org.antlr.v4.runtime.misc.NullUsageProcessor' 的受支持 source 版本 'RELEASE_6' 低于
  6. Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理
  7. Redis(三)、支持数据类型及常用操作命令
  8. 机器学习之支持向量机算法(二)
  9. 学习web前端技术的笔记,仅供自己查阅备忘,移动对font-size的控制(并非原创)...
  10. 非参数统计的Python实现——符号检验
  11. 谷歌字体 Google Fonts
  12. 【工作笔记】从零开始学ExtJs6(四)—— 常用api小记
  13. linux socket监听端口,Linux-socket使用
  14. 在esp32开发板上实现的web_radio,基于wm8978 codec芯片
  15. FastAdmin遇到的坑
  16. PCIe总线的参考时钟与同步时钟的差异
  17. admob html5,admob移动广告phonegap插件使用教程
  18. html文件关联异常怎么修复,在Win7系统中,如何修复exe文件关联错误?
  19. 三色球问题,python解决
  20. 使用wx原生方法扫描获取SN码

热门文章

  1. php mysql 时间字段_php – MySQL中各种日期/时间字段类型的优...
  2. MVC--Razor(2)
  3. 帝国cms后台模板编辑器辅助增强插件代码高亮格式化显示
  4. Keras_insightface测试
  5. QT多媒体 播放视频并显示字幕
  6. 视频防抖 Opencv
  7. RoIPooling
  8. Python pyd pyc
  9. log_sum_exp
  10. win 10无法启动print spooler服务,提示1068依赖服务或组无法启动