1、        字符流

Reader是定义java的流式字符输入模式的抽象类,该类所有方法在出错的情况下都将引发IOException异常.

Int read(char buffer[])           试图读取buffer中的buffer.length个字符,返回实际成功读取的字符数.

Abstract int read (char buffer[],int offset,int numChars)      试图读取buffer中从buffer[offset]开始的numChats个字符,返回实际成功读取的字符数.

Writer是是定义流式字符输出的抽象类.所有的该类方法都返回一个void值并在出错的条件下引发IOException异常.

Void write(char buffer[])          向一个输出流写一个完整的字符数组

abstract void write(char buffer[],int offset,int numChars)         向调用的输出流写入数组buffer以buffer[offset]为起点的N个Chats区域内的内容.

Void write(String str)            向调用的输出流写str

void write(String str,inf offset,int numChars)           写数组str中以指定的offset为起点长度为numChars个字符区域内的内容.

FileReader类创建一个可以读取文件内容的Reader类.常用的构造方法

FileReader(String filePath)

FileReader(File FileObj')

FileWriter创建一个可以写文件的Writer类.常用的构造方法

FileWriter(String filePath)

FileWriter(File fileObj)

FileWriter(String filePath,boolean append)

如果 append为true,输出时附加到文件尾的.FileWriter类的创建不依赖于文件存在与否.在创建文件之前时,FileWriter会在创建对象时打开它来作为输出.在这种情况下如果试图打开一个只读文件,则会引发一个IOException异常.

通过File类的对象去实例化Writer的对象,此时是通过其子类FileWriter实例化的Writer对象,属于对象的向上转型.

因为字符流主要以操作字符为主,所以声明一个String类的对象str.

通过File类的对象去实例化Reader的对象,此时是通过其子类FileReader实例化的Reader对象,属于对象的向上转型.

因为字节流主要以操作char数组为主,所以声明一个1024大小的char数组,用于存放读入的数组.

最后将char数组转成字符串输出.

2、        字符流用到了缓冲区,而字节流没有用到缓冲区.

3、        管道流

管道流主要用于连接两个线程的通信.管道流也分为字节流(PipedInputStream,PipedOutputStream)和字符流(PipedReader,PipedWriter)两种类型.

一个PipedInputStream对象必须和一个 PipedOutputStream对象进行连接而产生一个通信通道.PipedOutputStream可以向管道中写入数据,PipedInputStream可以从管道中读取PipedOutputStream写入的数据.这两个类主要用来完成线程之间的通信,一个线程的PipeInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据.

4、        System.in和System.out

System.in对应键盘,属于InputStream类型,程序使用System.in可以读取从键盘上输入的数据.System.out对应显示器,属于PrintStream类型,PrintStream是OutputStream的一个子类,程序使用System.out可以将数据输出到显示器上.

5、        打印流

PrintStream(OutputStream out)

PrintStream(OutputStream out,boolean autoflush)

PrintStream(OutputStream out,boolean autoflush,String encoding)

其中autoflush控制在Java中遇到换行符(\n)时是否自动清空缓冲区,encoding是指定编码方式.对于一个非基本数据类型的对象,print和println方法会先调用对象的toString方法,然后输出toString方法所返回的字符串.

PrintWriter(OutputStream,boolean)

PrintWriter(Writer)

PrintWriter(Writer,boolean)

PrintWriter即使遇到换行符(\n)也不会自动清空缓冲区,只在设置autoflush模式下使用了println方法后才自动清空缓冲区.

6、        DataInputStream与DataOutputStream

J2SE知识点摘记(十四)的更多相关文章

  1. J2SE知识点摘记(十八)

    Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)  Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...

  2. J2SE知识点摘记(十九)

    Collection 1.2.1         常用方法 Collection 接口用于表示任何对象或元素组.想要尽可能以常规方式处理一组元素时,就使用这一接口.Collection 在前面的大图也 ...

  3. J2SE知识点摘记(十六)

    1.         IO包中的类层次 ┌BufferedInputStream ├DataInputStream ┌FilterInputStream┼LineNumberInputStream ├ ...

  4. J2SE知识点摘记(十五)

    1.        字节流和字符流的转换 以字符为导向的stream基本上有与之相对应的以字节为导向的Stream,两个对应类实现的功能相同,只是操作时的导向不同 字节输入流转换为字符输入流: Inp ...

  5. J2SE知识点摘记(十二)

    1.      File类 下面的构造方法可以用来生成File对象 File(String directoryPath) geName()用于返回文件名,getParent()返回父目录名,exist ...

  6. J2SE知识点摘记(十)

    1.        多线程的同步 2.        同步代码块 即程序中不能有多个线程同时在这两句代码之间执行.(必须两句代码执行完,其他线程才可以公用执行) 同步代码块定义语法如下 ... syn ...

  7. J2SE知识点摘记(二十六)

    为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然 ...

  8. J2SE知识点摘记(二十三)

    我们简单介绍一下这个接口: 1.4.3        Comparable 接口 在 java.lang 包中,Comparable 接口适用于一个类有自然顺序的时候.假定对象集合是同一类型,该接口允 ...

  9. J2SE知识点摘记(二十四)

     覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equa ...

随机推荐

  1. HDU 1829 - A Bug's Life

    Problem Description Background Professor Hopper is researching the sexual behavior of a rare species ...

  2. (转)OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)

    (一)BMP文件格式简单介绍 BMP文件是一种像素文件,它保存了一幅图象中所有的像素.这种文件格式可以保存单色位图.16色或256色索引模式像素图.24位真彩色图象,每种模式种单一像素的大小分别为1/ ...

  3. Powerdesigner逆向工程从sql server数据库生成pdm (完整版)

    第一步:打开"控制面板"中的"管理工具" 第二步:点击"管理工具"然后双击"数据源(odbc)" 第三步:打开之后,点击 ...

  4. Android_神奇的android:clipChildren属性

    正文 一.效果图 看到这个图时你可以先想想如果是你,你怎么实现这个效果.马上想到用RelativeLayout?NO,NO,NO,,, 二.实现代码 <?xml version="1. ...

  5. jupyter巨好玩-简介与安装

    ipython notebook改名jupyter了而且更好玩更好用 jupyter简介 jupyter是啥啊? 这个要从ipython说起,ipython是个交互式的python的解释器,自带颜色, ...

  6. 《彻底搞定C指针》文档整理

    一.变量存储 #include <stdio.h> int main(void) { ; printf(“%d\n”, i); printf(“%d\n”, &i); //十进制打 ...

  7. Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AS" in the equal to operation.

    Scenario : 这个问题是我的存储过程中用到临时表时发生的. 应该是sql server 服务器的排序规则 (SQL_Latin1_General_CP1_CI_AS ) 与数据库的排序规则(C ...

  8. J2SE知识点摘记(四)

    1.        抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...

  9. Java_SSH项目主要步骤记录

    建立Spring-Struts-Hibernate的步骤整理 1. 建立web project 2. 建立hernate, action, service包 3. 右击项目,add myeclipse ...

  10. java中读取程序运行时间

    第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentTimeMillis();   //获取开始时间 doSomeThing();  // ...