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 类型的子类
- Java笔记01——IO流
- Java笔记——IO流
- java要点笔记——IO流
- Java笔记——IO流分类
- java笔记——io流
- java学习笔记07—IO流
- Java学习笔记—IO流
- JAVA IO 流 笔记 01
- JAVA学习笔记——JAVA中的IO流
- java IO流笔记
- java IO流笔记
- IO流 【java笔记】
- java笔记 IO流
- (42)Java学习笔记——IO流 / 字节流
- 【黑马程序员】 java笔记——IO流
- 黑马程序员 java学习笔记——IO流1
- 黑马程序员 java学习笔记——IO流2
- 黑马程序员 java学习笔记——IO流3
- linux centos yum安装mysql
- MyEclipse+Tomcat+JSP开发环境配置
- ScrollView嵌入ViewPager 滑动冲突的解决方法
- DevExpress更新至13.1.7
- socket 编程入门教程(一)TCP server 端:3、sockaddr与sockaddr_in
- Java笔记01——IO流
- Java笔记02——多线程
- 工作总结---PCB板子贴片问题
- 绘图基础--橡皮筋画线
- + - * / ( ) 四则运算表达式解析的初步实现
- Java笔记03——数据库JDBC
- js对文件及文件夹的操作
- LPTSTR、LPCSTR、LPCTSTR、LPSTR和CString
- toj 1153