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. OpenCV3编程入门-读书笔记2-core组件

    一.颜色空间缩减 1.概念 如果图像是3通道,深度为1个字节,则每个像素有256*256*256种可能值,这么多的可能值会对算法性能造成严重影响.利用颜色空间缩减就能解决这个问题,例如将颜色值0~9取 ...

  2. 帆软报表(finereport) 折叠树

    在进行展现数据时,希望模板的数据是可以动态折叠的,即点击数据前面的加号才展开对应下面的数据,可通过树节点按钮实现折叠树效果 实现思路: 1.这里建立一个内置数据集 添加数据 设置模板样式,添加颜色和对 ...

  3. Nikto and whatweb

    root@kali:~# nikto -host www.baidu.com- Nikto v2.1.6------------------------------------------------ ...

  4. OpenCV-Python:形态学操作

    常用的形态学操作:腐蚀.膨胀.开运算和闭运算 一.什么叫形态学操作 形态学操作就是改变物体的形状,比如腐蚀就是"变瘦",膨胀就是"变胖" 形态学操作一般作用于二 ...

  5. RabbitMQ 消息队列 二

    一:查看MQ的用户角色 rabbitmqctl list_users 二:添加新的角色,并授予权限 rabbitmqctl add_user xiaoyao 123456 rabbitmqctl se ...

  6. docker - 容器lxc

    容器:是在用户空间进行隔离的组件叫做容器 常用的容器有lxc ----libcontainer---runc 需要隔离的资源有: Rootfs:每个容器对应的一个目录做为根目录 User: Hostn ...

  7. java实验5

    实验一要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀表达式转后缀表达式的功能 MyBC.java ...

  8. (转)urllib库python2和python3具体区别

    转载链接:https://blog.csdn.net/whatday/article/details/54710403 Python 2 name Python 3 name urllib.urlre ...

  9. java日志规约及配置示例终极总结

    目录 什么是日志 常用日志框架 日志级别详解 日志的记录时机 日志使用规约 logback 配置示例 loh4j2 配置示例 什么是日志? 简单的说,日志就是记录程序的运行轨迹,方便查找关键信息,也方 ...

  10. 分布式文档存储数据库 MongoDB

    MongoDB 详细介绍 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以 ...