JavaSE的输入流、输出流

  1. 首先是四大基本抽象流,具体以下:
     字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer

以上四个流都是抽象流)(但不是抽象类),一般咱们使用的都是它们的子类(注意是一般,这四个抽象类也能用,只是用得少)。java

而实际编程中会使用到的:编程

①文件流

  字节流 字符流
输入流 FileInputStream(文件(字节)输入流) FileReader
输出流          FileOutputStream FileWriter

②缓冲流

  字节流 字符流
输入流 BufferedInputStream  BufferedReader
输出流 BufferedOutputStream BufferedWriter

缓冲流能够提升数据传输的速度数组

③转化流(就是把字节流转换成字符流)

     
输入流 InputStreamReader(字节流转换成字符流) OutputStreamReader
输出流 InputStreamWriter OutputStreamWriter 

用处例子:编程实现把用户从键盘输入的字符保存到一个String对象中。app

④数据流

  数据流
输入流 DataInputStream(数据输入流) 
输出流 DataOutputStream(数据输出流)

数据流能够把基本类型数据的二进制直接读入或写出。url

用处例子:编程实现把long类型数据写入到byte数组。 而后再从byte数组中把该数据读出。spa

⑤Print流

  Print流
输入流 PrintStream  
输出流 PrintWriter

Print流能够把基本数据类型的数据格式化后的字符串输出。code

用处例子:编程实现把键盘输入的数据写入A文件,若是输入有误,则把出错信息写入B文件。对象

注意:ci

字节输出流(OutputStream)和Print流不能同时使用,若是同时使用的话会报错。字符串

⑥Object流(用的不是不少)

  Object流
输入流 ObjectInputStream  
输出流 ObjectOutputStream

Object流能够把一个对象直接写入或读出。

 

这六种流每每是一套组合拳,举例:

// 使用IO流读取数据
BufferedReader buffer = new BufferedReader(new InputStreamReader(urlConn
	.getInputStream()));
while ((line = buffer.readLine()) != null) {
    sb.append(line);
}

获取字符序列后,经过InputStreamReader将字符序列转换成字节序列,可是因为字节序列不方便被操做,因此再套在BufferedReader(缓冲输入流)上。由于缓冲输入流这个类中有readLine()这个成员方法,这个方法能够一行一行地读取文件中的数据。

相关文章
相关标签/搜索