一 Writer

  public abstract class Writer extends Object implements Appendable, Closeable, Flushable

  这个类表示的是输入字符的输入流.然后这个类中有一个同步锁,用来同步这个流内的操作.然后就是这个流和FileInputStream不同的是,它提供了append的方法来实现追加.

然后也有flush,write,close的方法.然后就是既然可以写入字符,那其实也就是可以写入String了.因为这个类并不是直接与raw byte打交道,所以就使用默认的字符编码就行了.

  1.PrintWriter

   public class PrintWriter extends Writer

   这个类本身也不是一个Stream,也是提供了一些方法,可以想它内部含有的outputStream或者是Writer输出格式化的数据,如char sequence,String,int,float,Object等等,但是把raw byte输出.记住,这里是可以是任意的表示outputStream的对象.还提供了print,println等方法.

  2.OutputStreamWriter

  public class OutputStreamWriter extends Writer

  这个类主要是为了提供将字符编码的功能.我们可以指定使用的编码的方式,然后那编码过后的raw byte输出到outStream中,这个类本身也不是一个outputStream,需要使用外部的outputStream.

    a)FileWriter

        public class FileWriter extends OutputStreamWriter

        这个类主要是提供了将char sequence转化成buye[]输出到file中的能力,推测是它自己在内部构造了一个file的输出流.这个类使用默认的编码方式.

        PS:我们可以通过OutputStreamWriter和FileOutputStream结合使用来完成向文件中输出特定编码的数据的功能.

  3.BufferedWriter

  public class BufferedWriter extends Writer

  ok,这个类也是一个装饰类,主要是为了向其它writer来提供buff的功能,

  PS:这些装饰类可以嵌套使用,就可以实现很强的功能:如PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); 在这个例子中,FileWriter是我们真正的writer,向文件中写入.其它来个只是为它提供一些功能,如buff,还有输出的格式等等.

  4.CharArrayWriter

    public class CharArrayWriter extends Writer

   ok,这个类和ByteArrayOutputStream的功能很相似,主要用来将text写入内置的char[],这个buff是可以自动长大的.然后也有toCharArray,toString等功能.也有writeto方法,可以将buff中的数据写入别的witer对象.

  5.FilterWriter

    public abstract class FilterWriter extends Writer

   首先注意到这个是一个abstract类,它也是一个装饰类,为其它writer提供一些额外的功能.ok,这个其实不应该写,它好像还没有子类.暂时不要用这个.

  6.StringWriter

    public class StringWriter extends Writer 

   ok,这个类可以用来构造String.它把写入的数据都存入内部的一个Stringbuff中,然后可以通过toString,getStringBuff来获得Stringbuff中的内容.同样的,close这个方法也没有什么卵用.

  7.PipedWriter

  public class PipedWriter extends Writer  

    这个和PipedOutputStream类似,只是这是把字符,或char[]输出到pipe中.

二 Reader

 public abstract class Reader extends Objectimplements Readable, Closeable

  这个类和writer很类似,直接读进数据后,就转换成了char,或char[].

  好吧,这个和Writer很相似,就不一一做总结了

  

JAVA IO包的整理---------Writer和Reader的更多相关文章

  1. JAVA IO包的整理---------InputStream和OutputStream

    一:OutPutStream类: public abstract class OutputStream extends Object implements Closeable, Flushable 这 ...

  2. JAVA IO包的整理---------Exception

    EOFException Signals that an end of file or end of stream has been reached unexpectedly during input ...

  3. java.io包详细解说

    转自:http://hzxdark.iteye.com/blog/40133 hzxdark的博客 我不知道各位是师弟师妹们学java时是怎样的,就我的刚学java时的感觉,java.io包是最让我感 ...

  4. Java:输入输出流 java.io包的层次结构

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  5. 装饰者模式在JDK和Mybatis中是怎么应用的? java io包

    https://mp.weixin.qq.com/s/-bj71dBylRHRqiPorOpVyg 原创: 李立敏 Java识堂 3月10日 有一个卖煎饼的店铺找上了你,希望你能给她们的店铺开发一个收 ...

  6. 【代码笔记】Java文件的输入输出(1)——Java.io包的初步理解

    Java里面文件的输入输出全部在java.io包里面. Java.io包里面所有的类都需要掌握. java.io包里面所有的东西都在上面了. 包里面的相关类.异常等树关系如下 类分层结构 java.l ...

  7. Java源码解析——Java IO包

    一.基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO:2)java.nio包中的非阻塞型IO,通常称为New IO.这里只考虑到java.io包中堵塞型IO: 2. ...

  8. java.io 包下的类有哪些 + 面试题

    java.io 包下的类有哪些 + 面试题 IO 介绍 IO 是 Input/Output 的缩写,它是基于流模型实现的,比如操作文件时使用输入流和输出流来写入和读取文件等. IO 分类 传统的 IO ...

  9. java.io包中的字节流—— FilterInputStream和FilterOutputStream

    接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStre ...

随机推荐

  1. centos web+mysql服务器的安全

    今天闲来无事,拿来X-Scan-v3.3 来扫描自己的服务器,开放端口有22,80,443,3306:3306端口被扫出来,呵呵,那可不得了: 一,屏蔽扫描器扫出3306端口,因为web和数据库是在同 ...

  2. 暑假集训第一周比赛G题

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83146#problem/G G - 向 Crawling in process... C ...

  3. $().bind()的返回值

    var eleMenus = $("#choMenu a").bind("click", function (event){}); 此时eleMeuns的值是$ ...

  4. Linux 网卡操作与安全初始化

    一.Linux网络相关概念和修改IP地址的方法 1.1 网卡命名方式 CENTOS6的网卡命名方式: 它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. ...

  5. 快速构建hibernate框架

    手动配置Hibernate框架的配置,极易出现问题,在Eclipse的web项目中,我们可以快速配置,方便快捷 一.导入Hibernate框架所需要的jar文件 二. 窗口—Perspective—打 ...

  6. Python基础-处理时间模块

    import datetime, time # print(time.time()) # 获取当前时间戳,从unix元年开始到现在过了多少秒# print(time.sleep(19)) # 休息几s ...

  7. hsv空间

    hsv在不同的软件中,有不同的阈值, 在描述阈值之前,看一下它的定义,按照标准的定义,hsv应该是从0°到360°的一个环,加上一个表示亮度的轴,重点就是那个环. 这个环如图一,0°一般为红色120° ...

  8. list dict set comprehension 列表推导式 (字典推导式,集合推导式)

    从一个list生成新的list [ word.upper() for word in 'hellO worlD!' ] 简单的语法,如果不用list comprehension, 则要用更长的代码. ...

  9. ROS 负载均衡

    [xuan89@MikroTik] > :for i from=1 to=$z do= {/ip firewall mangle add action=mark-connection chain ...

  10. stl_multimap.h

    stl_multimap.h // Filename: stl_multimap.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...