1 / 15
文档名称:

IO流(熟练使用API).doc

格式:doc   大小:132KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IO流(熟练使用API).doc

上传人:luciferios08 2021/4/14 文件大小:132 KB

下载得到文件列表

IO流(熟练使用API).doc

文档介绍

文档介绍:I/O流 (熟练使用API)
(一):简单介绍(java.io包)
1:流的分类: 
输入流 / 输出流:根据数据方向分类
输入流:读取流
输出流:写入流
(2)字节流 / 字符流:根据数据单位分类(根据处理数据的不同来区分)
(3)节点流 / 过滤流(包装流):根据流功能分类
区别:
(1)所有以inputstream/outstream为结尾的流都是字节流, 以reader/writer为结尾的是字符流
(但是桥转换流例外InputStreamReader/OutputStreamWriter)是一个包装流
(2)节点流:可以直接读取源数据的流
(直接点说:就是参数可以是数据源)
   6流)。
字节流
字符流
备注
FileOutputStream
FileInputStream
FileWriter
FileReader
二进制文件用字节流,字符文件用字符流
PipedOutputStream
PipedInputStream
PipedWriter
PipesReader
主要用于线程间通信
处理流(过滤流)
BufferedOutputStream
BufferedInputStream
BufferdWriter
BufferedReader
带有缓冲的流,只有在缓冲满的时候或者手动刷新的时候
DataOutputStream
DataInputStream

读写基本类型的数据的方法
PrintStream
PrintWriter
主要用于记录日志,格式化的输出,所见即所输入,在构造的时候,确定是否自动刷新
ObjectOutputStream
ObjectInputStream

对象的序列化
OutputStreamWriter
InputStreamReader

用于字节流和字符流的转化(桥转换流)
Java IO的一般使用原则:
一、按数据来源(去向)分类:
1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream
3、是Char[]: CharArrayReader, CharArrayWriter
4、是String: StringBufferInputStream, StringReader, StringWriter
5、网络数据流:InputStream, OutputStream, Reader, Writer
二、按是否格式化输出分:
1、要格式化输出:PrintStream, PrintWriter
三、按是否要缓冲分:
1、要缓冲:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter
四、按数据格式分:
1、二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
2、纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其所有带Reader, Writer的子类
五、按输入输出分:
1、输入:Reader, InputStream类型的子类
2、输出:Writer, OutputStream类型的子类
六、特殊需要:
1、从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
2、对象输入输出:ObjectInputStream, ObjectOutputStream
3、进程间通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
4、合并输入:SequenceInputStream(序列流)
5、更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader
决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):
第一,考虑最原始的数据格式是什么:是否为文本?
第二,是输入还是输出?
第三,是否需要转换流:InputStreamReader, OutputStreamWriter?
第四,数据来源(去向)是什么:文件?内存?网络?
第五,是否要缓冲:bufferedReader (特别注明:一定要注