Java笔记01——IO流

来源:互联网 发布:拦截导弹算法 编辑:程序博客网 时间:2024/05/22 16:37

 Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。 

1.字节流——InputStream/OutputStream

InputStream 和 OutputStream 是两个 字节流的顶层抽象类,其他字节流处理类都继承于它们。

1.1 ByteArrayInputStream ——把内存中的一个缓冲区作为 InputStream 

1.2 StringBufferInputStream ——把一个 String 对象作为 InputStream 

1.3 FileInputStream ——把一个文件作为 InputStream 

1.4 PipedInputStream ——实现了管道,主要在线程中使用

1.5 SequenceInputStream——把多个 InputStream 合并为一个 InputStream 

 

1.6 各个输出流与输入流类似。

 

2.字符流——Reader/Writer

类似的,Reader/Writer 是两个 字符流的顶层抽象类,其他字符流处理类都继承于它们。

2.1 CharArrayReader ——与 ByteArrayInputStream 对应此类实现一个可用作字符输入流的字符缓冲区

2.2 StringReader —— 与 StringBufferInputStream 对应其源为一个字符串的字符流。

2.3 StringReader(String)—— 创建一新的串读取者

2.4 FileReader —— 与 FileInputStream 对应

2.5 PipedReader ——与 PipedInputStream 对应

 

2.6 各个输出流与输入流类似。

 

3.字符流与字节流转换:

3.1字符流转换为字节流 

InputStream input = new ByteArrayInputStream(byte[] buf) ;将byte作为字符流的缓冲区。

3.2字节流封装为字符流

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

 

4.字符流、字节流用法摘要

4.1、按数据来源(去向)分类:

1 )、是文件: FileInputStream, FileOutputStream, ( 字节流 )FileReader, FileWriter( 字符 )

2 )、是 byte[] : ByteArrayInputStream, ByteArrayOutputStream( 字节流 )

3 )、是 Char[]: CharArrayReader, CharArrayWriter( 字符流 )

4 )、是 String: StringBufferInputStream, StringBufferOuputStream ( 字节流 )StringReader, StringWriter( 字符流 )

5 )、网络数据流: InputStream, OutputStream,( 字节流 ) Reader, Writer( 字符流 )

 

4.2、按是否格式化输出分:

1) 、要格式化输出: PrintStream, PrintWriter

 

4.3、按是否要缓冲分:

1) 、要缓冲: BufferedInputStream, BufferedOutputStream,( 字节流 ) BufferedReader, BufferedWriter( 字符流 )

 

4.4、按数据格式分:

1)、二进制格式(只要不能确定是纯文本的) : InputStream, OutputStream 及其所有带 Stream 结束的子类

2) 、纯文本格式(含纯英文与汉字或其他编码方式); Reader, Writer 及其所有带 Reader, Writer 的子类

 

4.5、按输入输出分:

1) 、输入: Reader, InputStream 类型的子类

2) 、输出: Writer, OutputStream 类型的子类

 

 


原创粉丝点击