1. 转换流

  1.1 OutputStreamWriter类-字符流通向字节流的桥梁,可使用指定的字符编码表,将要写入流中的字符编码成字节。

  1.2 InputStreamReader类-字节流通向字符流的桥梁,可使用指定的字符编码表读取字节并将其解码为字符

  (1)读取指定的编码的文件时,一定要指定编码格式,否则就会发生解码错误,而发生乱码现象

  1.3 转换流和子类区别

  (1)继承关系:

    OutputStreamWriter:

      |-FileWriter

    InputStreamReader:

      |-FileReader

  (2)父类和子类的功能区别

    OutputStreamWriter和InputStreamReader是字符和字节的桥梁,也可以称之为字符转换流,字符转换流原理,字节流+编码表

    FileWriter和FileReader:作为子类,仅作为操作字符文件的便捷类存在。当操作的字符文件,使用的是默认编码表时可以不用父类,直接使用子类即可,简化代码

2. 缓冲流

  2.1 字节缓冲流

  (1)写入数据到流中,字节缓冲输出流 BuffereOutputStream

  (2)读取流中的数据,字节缓冲输入流 BufferedInputStream

  (3)它们的内部包含一个缓冲区,通过缓冲区读写,可以提高IO流的读写速度

  2.2 字节缓冲输出流 BuffereOutputStream

  (1)构造方法

    public  BuffereOutputStream(OutputStream out)  创建一个新的缓冲输出流,以将数据写入指定的底层输出流

  2.3 字节缓冲输入流 BuffereInputStream

  (1)构造方法

    public  BuffereInputStream(InputStream in)  

  2.4 字符缓冲流

  (1)字符缓冲输入流 BufferedReader

  (2)字符缓冲输出流 BufferedWriter

  2.5 字符缓冲输出流 BufferedWriter-将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入

  (1)方法

    void nextLine() 根据当前的系统,写入一个换行符

  2.6 字符缓冲输入流 BufferedReader-将字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取

  (1)方法

    public String readLine() 读取一个文本行,包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null

3. 流的操作规律

  3.1 四个明确

  (1)要操作的数据是数据源还是数据目的

    源:InputStreamReader Reader 

    目的:OutputStream Writer

  (2)要操作的数据是字节还是文本

    源:

      字节:InputStream  

      文本:Reader

    目的:

      字节:OutputStream

      文本:Writer

  (3)明确数据所在的具体设备

    源设备:

      硬盘:文件 File开头

      内存:数组,字符串

      键盘:System.in

      网络:Socket

    目的设备:

      硬盘:文件 File开头

      内存:数组,字符串

      屏幕:System.out

      网络:Socket

  (4)是否需要额外功能

      额外功能:

        转换吗?转换流:InputStreamReader OutputStreamWriter

        高效吗?缓冲区对象。BuffererXXX

  

  

[Day24]IO(转换流、缓冲流)的更多相关文章

  1. Java基础知识强化之IO流笔记41:字符流缓冲流之复制文本文件案例02(使用 [ newLine() / readLine() ] )(重要)

    1. 使用字符流缓冲流的特殊功能 [ newLine() / readLine() ] 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中  数据源: a.txt -- 读取数据 ...

  2. Java基础知识强化之IO流笔记39:字符流缓冲流之复制文本文件案例01

    1. 字符流缓冲流之复制文本文件案例 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 数据源: a.txt -- 读取数据 -- 字符转换流 -- InputStreamRe ...

  3. IO流(字节流,字符流,缓冲流)

    一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节 ...

  4. Java基础知识强化之IO流笔记40:字符流缓冲流之特殊功能 [ newLine() / readLine() ]

    1. 字符缓冲流的特殊方法 BufferedWriter: public void newLine():根据系统来决定换行符 BufferedReader: public String readLin ...

  5. Java基础知识强化之IO流笔记38:字符流缓冲流之BufferedWriter / BufferedReader使用

    1. 字符流缓冲流: 字符流为了高效读写,也提供了对应的字符缓冲流. BufferedWriter:字符缓冲输出流 BufferedReader:字符缓冲输入流 2. BufferedWriter使用 ...

  6. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  7. Java基础IO类之缓冲流

    首先要明确一个概念: 对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是:能够高效的读写信息,原理是先将数据先缓冲起来,然后一起写入或者读取出来. 对于字节: BufferedInp ...

  8. IO Streams:缓冲流

    我们迄今为止看到的大多数示例都使用无缓冲的I / O.这意味着每个读或写请求都由底层操作系统直接处理.这使程序效率变得很低,因为每个这样的请求经常触发磁盘访问,网络活动或一些相对昂贵的其他操作. 为了 ...

  9. java 文件字节和字符流 缓冲流

    流的原理 1) 在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行:2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据 ...

随机推荐

  1. SQL Server - AS

    AS 是给现有的字段名/表名指定一个别名的意思.

  2. Tomcat zabbix监控、jmx监控、zabbix_java_gateway

    几种方式监控tomcat,如标题. 下面就是参考的网上的连接.自己可以试一下. 由于牵扯到jvm的很多东西, 在这里就只是粘贴处连接参考. http://www.cnblogs.com/chrisDu ...

  3. Struts2优缺点

    优点: (1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现. (2)  丰富的标签库,大大提高了开发的效率. (3) Struts2提供丰富的拦截器实现. (4) 通过配置文件, ...

  4. Linux下安装VMware Tools(使虚拟机支持文件拖拽)

    如图点击虚拟机找到安装VMware Tools选项,点击后会在虚拟机桌面显示一个光盘,双击进入如下页面: 选择压缩包将其复制放入Home中不带中文的文件夹: 打开终端,输入cd命令进入文件夹,将压缩包 ...

  5. 利用jQuery如何获取当前被点击的按钮

    如下代码 <tr> <td><a href="javascript:void(0)">点我1</a></td> < ...

  6. apache安装软负载的配置说明

    安装Apache:yum -y install httpd 首先要查看apache的安装版本 命令:httpd –v 第一种: 若安装是2.2版本,则把复制 mod_wl_22.so和mod_wl.s ...

  7. python---循环双向链表实现

    这个方案里的尾插入,就使用了更高效的prev指标. 但感觉remove的代码不够和前面统一, 我有代码洁癖了???? # coding = utf-8 # 双向链表 class Node: # 双向链 ...

  8. 在ABP的Web层中实现复杂请求跨域访问

    在最近的项目中,后端使用ABP,前端采用React,前后端完全分离.其中大部分接口都通过WebApi层调用,项目中未使用Session.但最后在添加一个网站的验证码验证留言功能时,使用了Session ...

  9. Python学习(三十六)—— Cookie、Session和自定义分页

    一.Django中操作Cookie 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR ...

  10. 带URL的XML解析方式

    XmlDocument xml = new XmlDocument(); xml.LoadXml(responseString); XmlNode root = xml.DocumentElement ...