JAVA IO包的整理---------Writer和Reader
一 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的更多相关文章
- JAVA IO包的整理---------InputStream和OutputStream
一:OutPutStream类: public abstract class OutputStream extends Object implements Closeable, Flushable 这 ...
- JAVA IO包的整理---------Exception
EOFException Signals that an end of file or end of stream has been reached unexpectedly during input ...
- java.io包详细解说
转自:http://hzxdark.iteye.com/blog/40133 hzxdark的博客 我不知道各位是师弟师妹们学java时是怎样的,就我的刚学java时的感觉,java.io包是最让我感 ...
- Java:输入输出流 java.io包的层次结构
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...
- 装饰者模式在JDK和Mybatis中是怎么应用的? java io包
https://mp.weixin.qq.com/s/-bj71dBylRHRqiPorOpVyg 原创: 李立敏 Java识堂 3月10日 有一个卖煎饼的店铺找上了你,希望你能给她们的店铺开发一个收 ...
- 【代码笔记】Java文件的输入输出(1)——Java.io包的初步理解
Java里面文件的输入输出全部在java.io包里面. Java.io包里面所有的类都需要掌握. java.io包里面所有的东西都在上面了. 包里面的相关类.异常等树关系如下 类分层结构 java.l ...
- Java源码解析——Java IO包
一.基础知识: 1. Java IO一般包含两个部分:1)java.io包中阻塞型IO:2)java.nio包中的非阻塞型IO,通常称为New IO.这里只考虑到java.io包中堵塞型IO: 2. ...
- java.io 包下的类有哪些 + 面试题
java.io 包下的类有哪些 + 面试题 IO 介绍 IO 是 Input/Output 的缩写,它是基于流模型实现的,比如操作文件时使用输入流和输出流来写入和读取文件等. IO 分类 传统的 IO ...
- java.io包中的字节流—— FilterInputStream和FilterOutputStream
接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStre ...
随机推荐
- F1 score,micro F1score,macro F1score 的定义
F1 score,micro F1score,macro F1score 的定义 2018年09月28日 19:30:08 wanglei_1996 阅读数 976 本篇博客可能会继续更新 最近在 ...
- 利用create-react-app从零开始搭建React移动端环境
一 开始 1 全局安装脚手架 npm install -g create-react-app 这有个坑,就是在window下安装一直会报错,报错信息如下: 解决办法:在开始菜单栏里打开cmd的时,右击 ...
- UniDAC 安装教程
翻译: 1.解压后把UniDAC文件夹直接复制到你专门用来存放第三方控件的地方(这一步根据自己的喜好,可以跳过这一步)2.在UniDAC\Source\Delphi21文件夹中找到Make.bat文件 ...
- cudnn 卷积例子
运行环境:linux cuda cudnn cudnn API:https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index ...
- linux命令学习笔记(0):man命令
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可. Linux的man手册共有以下几个章节: 代號 代表內容 使用者在shell中可以操作的指令或可执行 ...
- LeetCode Majority Element I
原题链接在这里:https://leetcode.com/problems/majority-element/ 题目: Given an array of size n, find the major ...
- AtCoder Grand Contest 014 题解
A - Cookie Exchanges 模拟 Problem Statement Takahashi, Aoki and Snuke love cookies. They have A, B and ...
- [转]django 日志logging的配置以及处理
http://davidbj.blog.51cto.com/4159484/1433741 日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常.在生产环境下有很大的用途.在J ...
- Android的各国语言的缩写
语言包在android工程中的对应关系: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-en ...
- bzoj 4066 简单题——KDtree(带重构)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4066 带部分重构的KDtree.就是那个替罪羊树思想的. 写了对拍,调了半天,发现忘了 re ...