数据的读写,按照数据类型可以分为两种:字符流和字节流(二者区别?)。所以数据读取方式按照数据类型也可以分为两类:字节流的读取和字符流的读取。

一、字节流读取操作:
|
|-----1、FileInputStrem和FileInputStream字节流逐字节读写(速度最慢)
|
|
|-----2、FileInputStrem和FileInputStream构造一个缓冲数组进行读写(速度提升)
|
|-----3、利用字节缓冲区流BufferedInputStream和BufferedOutputStream来直接逐字节读写(速度较快)
|
|
|------4、利用字节缓冲区流BufferedInputStream和BufferedOutputStream通过构造一个缓冲数组进行读写(速度最快)
|
|
|-----5、利用字符流InputStreamWriter和 OutputStreamWriter直接按字节读取
拷贝一个的视频文件,
但是呢,这样的结果是拷贝之后的视频,总大小减小了,原因是直接用的是字符流拷贝导致的,所以对于视频、音乐这些多媒体文件来说,要用字节流进行拷贝。
|
|
|-----6、字符流InputStreamWriter和 OutputStreamWriter直接用缓冲区数组读写
同样拷贝上述视频文件,
|
|
|-----7、字符缓冲流BufferedWriter和BufferedReader直接逐字节读写
拷贝上述视频文件,
|
|
|-----8、字符缓冲流BufferedWriter和BufferedReader按照数组大小逐块读写
拷贝上述视频文件,
|
|
|-----9、字符缓冲流BufferedWriter和BufferedReader按逐行读写(应用于文本读写)
总结:

复制文本文件有几种方式?

9种

复制图片文件有几种方式?

4种

他们各自的优缺点是什么?

字符流按字符处理数据,速度较之于同原理的字节流快,但是使用范围较小,仅限文本文件;

    字节流处理范围广,文本,音频,视频都可以处理。

转载于:https://www.cnblogs.com/Buffalo-L/p/4446379.html

Java中9种IO的读取方式相关推荐

  1. java字节流读取文件_字节流读取文件 java的几种IO流读取文件方式

    java字节流怎么读取数据 字节流读取数据例子如下: import java.io.File;import java.io.FileInputStream;import java.io.FileNot ...

  2. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  3. java获取项目中的路径_java中几种获取项目路径方式

    转自http://caodaoxi.iteye.com/blog/1234805 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是Web ...

  4. java中几种创建对象的方式

    java中几种创建对象的方式 在java程序中,对象可以被显式地或者隐式地创建. 下面说说四种显式的创建对象的方式:     ●  用new语句创建对象     ●  运用反射手段,调用java.la ...

  5. java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...

  6. Java中两种抛出异常的方式

    Java中两种抛出异常的方式 在Java中有两种抛出异常的方式,一种是throw,直接抛出异常,另一种是throws,间接抛出异常. 直接抛出异常是在方法中用关键字throw引发明确的异常.当thro ...

  7. 详解 Java 中 4 种 I/O 模型

    同步.异步.阻塞.非阻塞都是和I/O(输入输出)有关的概念,最简单的文件读取就是I/O操作.而在文件读取这件事儿上,可以有多种方式. 本篇会先介绍一下I/O的基本概念,通过一个生活例子来分别解释下这几 ...

  8. Java中四种XML解析技术之不完全测试

    Java中四种XML解析技术之不完全测试 <script language=javascript src=""></script> 在平时工作中,难免会遇到 ...

  9. Java中 9 种常见的 CMS GC 问题分析与解决

    目录 Java中 9 种常见的 CMS GC 问题分析与解决 1. GC 1.1 引言 1.2 概览 2. GC 基础 2.1 基础概念 2.2 JVM 内存划分 2.3 分配对象 2.4 收集对象 ...

最新文章

  1. Flutter(一):用BottomNavigationBar实现常规的底部导航
  2. 使用AD5933测量元器件的谐振特性
  3. 一个初学者的SAP Cloud Platform学习笔记
  4. 支付宝瓜分9亿,20倍大概能分到多少钱?
  5. 怎么将SVG转成PNG(.NET工具包编写)
  6. 用 Python 和 werobot 框架开发公众号
  7. 【今日CV 视觉论文速览】Fri, 15 Feb 2019
  8. Ajax基础知识梳理 1
  9. tomcat7.0支持什么版本的jdk_JDK/Java 16 可能带来什么新特性?
  10. ArcGIS 判断坐标系是否正确
  11. 基于fdw的跨Greenplum集群数据库查询实现
  12. AR地图与虚拟现实技术
  13. 高等工程数学(一):线性空间
  14. 华为、海尔之后,阿里在全屋智能领域有新动作,这次牵手的是萤石
  15. 数据库 | MitoPhen 数据库:基于人体表型进行线粒体 DNA 疾病诊断
  16. 《动手学深度学习》(PyTorch版)代码注释 - 3 【Softmaxs_regression_with_zero】
  17. sequence生成器写法
  18. 彻底搞懂-扔鸡蛋问题-方程-动态规划
  19. 华为,其实你的对手是时代
  20. idea中push代码失败问题解决

热门文章

  1. 六、pink老师学习笔记——CSS三角形之美 margin负值之美文字围绕浮动元素行内块元素布局的巧妙运用
  2. LeetCode 1668. 最大重复子字符串
  3. 05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)
  4. 05.序列模型 W2.自然语言处理与词嵌入
  5. 阿里云 超级码力在线编程大赛初赛 第2场 题目4. 小栖的金字塔(超级卡特兰数+除法求模/乘法逆元)
  6. LeetCode 432. 全 O(1) 的数据结构(设计题)*
  7. LeetCode 1480. 一维数组的动态和(前缀和)
  8. ad域不去用frs_Windows Server 2008搭建AD域控服务器 - 小王同学!
  9. 平面设计中的网格系统pdf_平面设计基础知识
  10. python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】