字节流与字符流的区别:

上图解析:

  1. 字节输出流是直接把字节数据写出到磁盘或其他设备上,而字符输出流会先把字符输出流按一定的编码规则进行编码成二进制的字节输出流再写出到磁盘或其他设备上。
  2. 字节输入流每次读取一个字节数据到内存(也可以使用缓冲区一次读取多个),而字符输入流是每次读取多个字节的数据到内存中,然后对读取的字节数据按照一定的编码规则进行解码,然后形成文本数据。
  3. 总的来说,系统到磁盘或者其他设备上的数据,从其他数据读取到内存中时,都是字节数据,只是java封装了一层字节到字符或者字符到字节的工序。
  4. 字节流适用于任何形式的数据;而字符流只适用于文本数据,不能用字符流来传输诸如图片、语言、视频等二进制数据。但是处理文本数据字符流要比字节流方便许多。
  5. 使用字符输出流时一定要记得使用flush方法或者close方法把数据强制刷出到磁盘或其他设备,因为字符流会存在缓冲区,除非缓冲区满了才会自动刷出到磁盘或者其他设备中。使用字节流的话如果带有或者使用缓冲区的话,就也要强制刷出到磁盘或者其他设备中。

总结区别:

比较项 字节流 字符流
基类 OutputStream/InputStream Writer/Reader
操作的数据单位 字节 字符(多个字节)
缓冲区 可以有也可以无
适用数据 任何 只适用于文本类数据

Java I/O之字节流与字符流的区别相关推荐

  1. java精选面试题---字节流和字符流的区别

    字节流和字符流的区别 字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节 数是两个,在 UTF-8 码表中是 3 个字节)时.先去查指定的编码表,将查 ...

  2. 1.8 Java字节流和字符流的区别,如何区分输入流和输出流?

    Java字节流和字符流的区别 首先我们先大概总结一下前面学习的内容,可分为以下几点: 以 Stream 结尾都是字节流,Reader 和 Writer 结尾都是字符流. InputStream 是所有 ...

  3. java字符流实际上也是字节,[Java教程]Java字节流与字符流的区别

    [Java教程]Java字节流与字符流的区别 0 2017-05-22 12:00:42 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身 ...

  4. java字节流转字符串_字节流与字符流的区别及相互转换

    先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输出都是以流的形 ...

  5. Java字节流和字符流的优缺点_字节流与字符流的区别用字节流好还是用字符流好?...

    字节流: (A)FileOutputStream(File name) 创建一个文件输出流,向指定的 File 对象输出数据. (B)FileOutputStream(FileDescriptor) ...

  6. Java——I/O(字节流、字符流与转换流 )

    目录 字节流和字符流 1. 流操作流程 2. 字节输出流(OutputStream) 2.1 输出方法 3. 自动关闭支持AutoCloseable-JDK1.7 4. 字节输入流(InputSrea ...

  7. Java字节流和字符流的区别?

    字符流:就是在字节流的基础上,加上编码,形成的数据流 字符流出现的意义:因为字节流在操作字符时,可能会有中文导致的乱码,所以由字节流引申出了字符流. 程序中所有的数据都是以流的方式进行传输或保存的,字 ...

  8. Java文件流字节流和字符流的区别

    字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位, 字符流以字符为单位 处理对象不同:字节流能处理所有类型的文件,包括图片,视频等,而字符流只能处理字符类型的数据 字节流:一次读入 ...

  9. 字节流与字符流的区别(good!)

    字节流与字符流的区别 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了 ...

最新文章

  1. Java和.NET使用DES对称加密的区别
  2. Linux内核模块编程系列1-极简内核模块编写
  3. linux应用程序安装与管理
  4. python导入自己的模块_python导入自定义模块
  5. Java 集合Collection图解
  6. 泛型数组列表ArrayList
  7. 拥有成本分析:Oracle WebLogic Server与JBoss
  8. 从另一个角度看大数据量处理利器:布隆过滤器
  9. Keil 中的Code, RO-data , RW-data, ZI-data
  10. 放回采样最终不同样本数量
  11. 【BZOJ】3566: [SHOI2014]概率充电器
  12. C# 计算一点绕另一点旋转一定角度后新点的坐标
  13. linux+ tomcat 遇到ClientAbortException: java.net.SocketException: Broken pipe
  14. 日志管理Rsyslog
  15. 《C语言程序设计》课后习题答案(第四版)谭浩强
  16. SAP常用后台表总结
  17. c语言 输入两个正整数m和n,求其最小公倍数。
  18. 天池项目总结,特征工程了解一下!
  19. HTML+CSS大作业——中华美德文化(6页) HTML+CSS+JavaScript 中国传统美德文化网页HTML代码
  20. vulhub 8.1-backdoor漏洞复现

热门文章

  1. Java案例:Swing常用组件演示
  2. 安装注册数据库管理工具
  3. Vue学习笔记:使用CLI构建Vue项目
  4. 专业英语笔记(Line Feed and Type Conversion)
  5. 10.傅里叶变换——达利画家、基集(Basis Set)、傅里叶级数(Fourier Series)_1
  6. bzoj3129 [Sdoi2013]方程 容斥+扩展lucas
  7. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(4) - 32位EFLAGS - 状态标志与控制标志
  8. 手把手教学:Nginx的安装
  9. MySQL令人咋舌的隐式转换
  10. Coding the Matrix Week 3 The Matrix 矩阵