JDK中个别类的介绍-IO读写(java.io.*)
来源:互联网 发布:淘宝刻章会被钓鱼 编辑:程序博客网 时间:2024/04/27 17:06
一直以来对于java.io包中的Stream、writer/reader、Buffered*等较为混沌,现在理一理它们之间的关系。主要依据字符、字节!字符:人可以看。字节:机器的编码,用于传输或读写硬盘上的数据。
字节的读写(Stream)
FileInputStream用于获得输入字节,可以读取诸如图像之类的原始字节流。
FileInputStream fileInputStream=new FileInputStream(File file);int read(byte[] b);//从输入流中将最多b.length个字节数据读入bint read(byte[] b, int off, int len)://最多len字节数据读入b,位置是从b的off处开始int skip(long n);//从输入流中跳过n字节。FileOutputStream:文件输出流,将数据写入File。
FileOutputStream(File);void write(byte[] b);void write(byte[] b, int off, int len);
FileReader用于读取字符文件。
FileReader fileReader=new FileReader(File file);FileWriter用于写入字符文件。
FileWriter fileWriter=new FileWriter(File file);
InputStreamReader:字节流=》字符流,可使用指定的Charset读取字节并解码为字符。
InputStreamReader(InputStream);InputStreamReader(InputStream,Charset);int read(char[],int offset,int length);OutputStreamWriter:字符流=》字节流,可使用指定的Charset将要写入流中的字符编码成字节。
OutputStreamWriter(OutputStream);OutputStreamWriter(OutputStream out,Chaset);void write(char[] cbuf,int off,int len);
Reader/Writer的包装-提升性能
BufferedReader 从字符输入流中读取文本,缓冲各个字符,高效读取。api建议用它包装开销较高的FileReader和InputStreamReader。
BufferedReader(Reader in);BufferedReader bf1=new BufferedReader(new FileReader(""));BufferedReader bf2=new BufferedReader(new InputStreamReader());int read(char[] cbuf,int off, int len);String readLine();BufferedWriter将文本写入字符输出流,缓冲各个字符。可用于包装开销很高的FileWriter,OutputStreamWriter。
BufferedWriter(Writer);BufferedWriter(new FileWriter(""));BufferedWriter(new OutputStreamWriter());void write(char[] cbuf,int off, int len);void write(String, int off, int len);以上是依据 机器<->人 这样的流程来分析。下面看下类图:
OutputStream -> FileOutputStream -> BufferedOutputStream
InputStream -> FileInputStream -> BufferedInputStream
Writer -> FileWriter -> BufferedWriter
Reader -> FileReader -> BufferedReader
Stream:字节流操作的超类,Reader/Writer:字符流操作的超类。BufferedInputStream/BufferedOutputStream/BufferedWriter/BufferedReader在上述IO操作上增加了缓冲,可以有效地提高文件I/O性能。
- JDK中个别类的介绍-IO读写(java.io.*)
- jdk中个别类的介绍-Object、Class、Arrays
- JDK中个别类的介绍-Pattern、Matcher
- Java中IO流的介绍
- Java中IO处理类介绍
- Java中IO处理类介绍
- Java中IO流介绍
- java中io流介绍
- JDK笔记-IO流读写
- java中常见IO的读写效率对比
- Java中常见IO的读写效率对比
- JAVA序列化在IO中读写对象的使用
- java 中 IO中的读写模板
- java中关于IO文件读写
- JDK中java.io.InputStream源码
- JDK中java.io.OutputStream源码
- JDK中java.io.InputStreamReader源码
- Java IO流的介绍
- 线性布局 相对布局 参数
- poj 1180 Batch Scheduling
- MessageBox()输出变量信息
- vc中读取配置文件
- Linux下的计划任务
- JDK中个别类的介绍-IO读写(java.io.*)
- Virtual-Key Codes(虚拟键码)
- iphone界面元素的尺寸[转]
- 解bug
- Android 的消息队列模型
- 关于写CSDN博客时图片上传的解决方法
- peoplesoft后台登陆地址
- WPF的重要新概念
- javascript高级程序设计学习(一)-----js基础