J2SE知识点摘记(十四)
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知识点摘记(十四)的更多相关文章
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- J2SE知识点摘记(十九)
Collection 1.2.1 常用方法 Collection 接口用于表示任何对象或元素组.想要尽可能以常规方式处理一组元素时,就使用这一接口.Collection 在前面的大图也 ...
- J2SE知识点摘记(十六)
1. IO包中的类层次 ┌BufferedInputStream ├DataInputStream ┌FilterInputStream┼LineNumberInputStream ├ ...
- J2SE知识点摘记(十五)
1. 字节流和字符流的转换 以字符为导向的stream基本上有与之相对应的以字节为导向的Stream,两个对应类实现的功能相同,只是操作时的导向不同 字节输入流转换为字符输入流: Inp ...
- J2SE知识点摘记(十二)
1. File类 下面的构造方法可以用来生成File对象 File(String directoryPath) geName()用于返回文件名,getParent()返回父目录名,exist ...
- J2SE知识点摘记(十)
1. 多线程的同步 2. 同步代码块 即程序中不能有多个线程同时在这两句代码之间执行.(必须两句代码执行完,其他线程才可以公用执行) 同步代码块定义语法如下 ... syn ...
- J2SE知识点摘记(二十六)
为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然 ...
- J2SE知识点摘记(二十三)
我们简单介绍一下这个接口: 1.4.3 Comparable 接口 在 java.lang 包中,Comparable 接口适用于一个类有自然顺序的时候.假定对象集合是同一类型,该接口允 ...
- J2SE知识点摘记(二十四)
覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equa ...
随机推荐
- MFC对话框中解决回车键、ESC键退出的方法
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN&&pMsg->wP ...
- 用Cookie和Session实现用户登录 函数
由于网页是一种无状态的连接程序,你无法得知用户的浏览状态,必须通过Cookie或Session记录用户的有关信息. Cookie: 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP透 ...
- HTTP中的URL长度限制(资料整理)
HTTP中的URL长度限制 首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori l ...
- Ubuntu安装Microsoft Windows Fonts微软字体库
ttf-mscorefonts-installer包是微软的字体包, 可以直接在软件中心中找到安装,也可以通过命令安装 sudo apt-get install ttf-mscorefonts-ins ...
- 在Linux手动把文件转码的方法,防止乱码出现
iconv -f utf-8 -t gb2312 report.html > report_test.html
- QJ系列笔记
1.求int型数据在内存中存储时1的个数输入一个int型数据,计算出该int型数据在内存中存储时1的个数. #include<stdio.h> void main() { ; int yu ...
- InputStream和OutputStream
1.在java中stream代表一种数据流(源),javaio的底层数据元,---(想像成水龙头) 2.任何有能力产生数据流(源)的javaio对象就可以看作是一个InputStream对象既然它能产 ...
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSort,ShellSort,HeapSort,BubbleSort等等等等,都可以扔掉了,还要这些算法干吗阿,呵呵.不 ...
- AndroidUI 引导页面的使用
一个应用程序都少不了欢迎页面和引导页面,本文主要讲如何制作一个引页面: 首页所有的目录结构: 新建Welcome引导页面和Activity: <RelativeLayout xmlns:andr ...
- iOS第三方开源库的吐槽和备忘(转)
原文:http://www.cocoachina.com/industry/20140123/7746.html 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽. 目前比较活跃的社区 ...