一 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. HDU2612 -暑假集训-搜索进阶N

     http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...

  2. mono上运行程序常见问题

    1. System.BadImageFormatException: Invalid method header local vars signature token 0x 65d5b2File na ...

  3. 如何在unigui中用代码展开一棵树?

    procedure expandtree(tree:tunitreeview);begin   UniSession.AddJS('setTimeout("' + Tree1.JSName ...

  4. Spark- Spark内核架构原理和Spark架构深度剖析

    Spark内核架构原理 1.Driver 选spark节点之一,提交我们编写的spark程序,开启一个Driver进程,执行我们的Application应用程序,也就是我们自己编写的代码.Driver ...

  5. linux开机过程

    一.MBR(main boot record)主引导记录 主引导记录位于0盘面,0磁道,0扇区,早期由512个字节组成. 其中446个字节是boot loader程序.Boot Loader是在操作系 ...

  6. 使用jquery执行ajax

    $.ajax():返回其创建的XMLHttpRequest对象 回调函数:如果要处理$.ajax()得到的数据,则应该使用回调函数!beforeSend:在发送请求之后调用,需要一个XMLHttpRe ...

  7. 【BZOJ 4199】[Noi2015]品酒大会 后缀自动机+DP

    题意 两个长度为$r$的子串相等称为$r$相似,两个$r$相似的权值等于子串开头位置权值乘积,给定字符串和每个位置权值,求$r$相似子串数量和最大权值乘积 对反串建立后缀自动机得到后缀树,后缀树上两个 ...

  8. SQL关联查询中on与where

    微信公众号:刺刺刺猬的优雅 前段时间,做一个查询,打算用left join查询存在于A表但不存在于B表记录,但怎么查都不对,原因是把所有filter全部放在了where语句中,因此回头看了资料,记录一 ...

  9. 2013VS快捷键

    VS2013常用快捷键: 1.回到上一个光标位置/前进到下一个光标位置  1)回到上一个光标位置:使用组合键“Ctrl + -”: 2)前进到下一个光标位置:“Ctrl + Shift + - ”. ...

  10. NYOJ-求逆序数 ----------------待解决,WA

    描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 现在,给你一个N个元素的序列,请你判断出它的逆序数 ...