博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java笔记01——IO流
阅读量:5835 次
发布时间:2019-06-18

本文共 1970 字,大约阅读时间需要 6 分钟。

 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 类型的子类

 

 

转载于:https://www.cnblogs.com/kevin-tyc/p/3323052.html

你可能感兴趣的文章
java优势
查看>>
与App Store审核的斗智斗勇
查看>>
[李景山php]每天laravel-20161102|CompileEngine.php-1
查看>>
数组的循环和迭代
查看>>
java学习笔记二 2019.6.17 周一 三亚 阴
查看>>
java基础------数组
查看>>
点滴积累【C#】---C#实现下载word
查看>>
中轴型SpA的两种诊断分支具有可比性
查看>>
Android--音乐播放器
查看>>
二分查找java代码
查看>>
JavaScript事件练习
查看>>
代理模式
查看>>
vs2010的11个调试技巧和方法
查看>>
关于k-means聚类算法的matlab实现
查看>>
Git分支2
查看>>
在域环境下禁用USB存储设备的方法
查看>>
一键安装Gitlab后的备份、迁移与恢复
查看>>
因为本人工作繁忙,精力有限,本博客停止更新。有兴趣的博友可以关注我在CSDN上的主博客...
查看>>
读取网站字节流与字符流
查看>>
Unix整理笔记——Unix基础——里程碑M1
查看>>