区别:

1、字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的

2、字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容

3、Reader类的read()方法返回类型为int :作为整数读取的字符(占两个字节共16位),范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1
inputStream的read()虽然也返回int,但由于此类是面向字节流的,一个字节占8个位,所以返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。因此对于不能用0-255来表示的值就得用字符流来读取!比如说汉字.

4、字节流与字符流主要的区别是他们的的处理方式

字节流:处理字节和字节数组或二进制对象;

字符流:处理字符、字符数组或字符串。

那开发中究竟用字节流好还是用字符流好呢?

一、字符(Reader和 Writer):中文,字符是只有在内存中才会形成的,操作字符、字符数组或字符串,

二、字节(InputStream 和OutputStream):音频文件、图片、歌曲,所有的硬盘上保存文件或进行传输的时候,操作字节和字节数组或二进制对象,

*如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),并且采用边读边写的方式(节省内存)。

***

**缓冲区

缓冲区可以简单地理解为一段内存区域。
可以简单地把缓冲区理解为一段特殊的内存。
某些情况下,如果一个程序频繁地操作一个资源(如文件或数据库),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可,因为读取内存速度会比较快,这样可以提升程序的性能。
在字符流的操作中,所有的字符都是在内存中形成的,在输出前会将所有的内容暂时保存在内存之中,所以使用了缓冲区暂存数据。
如果想在不关闭时也可以将字符流的内容全部输出,则可以使用Writer类中的flush()方法完成。

Java字节流与字符流的区别和执行效率相关推荐

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

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

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

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

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

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

  4. java 字节流与字符流的区别

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

  5. java字节流与字符流的区别编码缓冲

    部分摘自http://blog.csdn.net/cynhafa/article/details/6882061 所有的文件在存储和传输时都是以字节(byte)为单位进行的,包括图片等都是按字节的方式 ...

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

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

  7. Java I/O之字节流与字符流的区别

    字节流与字符流的区别: 上图解析: 字节输出流是直接把字节数据写出到磁盘或其他设备上,而字符输出流会先把字符输出流按一定的编码规则进行编码成二进制的字节输出流再写出到磁盘或其他设备上. 字节输入流每次 ...

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

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

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

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

最新文章

  1. 今天开始记录自己苹果开发博客旅程!~
  2. 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...
  3. FastDFS图片服务器
  4. AngularJS开发人员最常犯的10个错误
  5. Docker 数据管理介绍
  6. ASoC Platform驱动代码框架图
  7. Vijos1906 联合权值 NOIP2014Day1T2 树形动态规划
  8. Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  9. 创建.ignore文件
  10. MySQLl数据量不一样,导致走不同的索引
  11. imx8开发之~源码编译
  12. 安装Hitool JRE环境
  13. 【Python爬虫实战】微信爬虫
  14. 迈高图手机版_迈高图(地图数据下载器)
  15. 【qq视频录像机软件2013V3.0】聊天视频网络电视录像专家
  16. 第十四章 C语言头文件的编写_C语言模块化编程中的头文件
  17. mysql调用耗时_记一次服务器执行MySQL耗时问题
  18. 古希腊神话故事:菲勒美拉
  19. 【围观】CISP-PTE 考题示例
  20. Polyanskiy’s bound

热门文章

  1. jar包冲突如何排查
  2. Linux服务器需要安装的基本软件
  3. Eclipse Problems During Content Assist正确解决方法
  4. 2006德国世界杯32强口号-励志篇
  5. 蜜蜂剪辑 Apowersoft BeeCut 1.6.8.14 让剪辑更简单,全民都会用的视频剪辑软件
  6. Imagex使用简介【Z】
  7. 富文本编辑器和图片压缩问题
  8. ACM SIGIR 2022 | 美团技术团队精选论文解读
  9. python爬虫淘宝图片+GUI+打包成exe
  10. JavaScript之图片切换(类似淘宝商品图切换)