资源描述:
《io流(熟练使用api)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、I/O流 (熟练使用API)(一):简单介绍(java.io包)1:流的分类: (1)输入流/输出流:根据数据方向分类输入流:读取流输出流:写入流(2)字节流/字符流:根据数据单位分类(根据处理数据的不同来区分)(3)节点流/过滤流(包装流):根据流功能分类区别:(1)所有以inputstream/outstream为结尾的流都是字节流,以reader/writer为结尾的是字符流(但是桥转换流例外InputStreamReader/OutputStreamWriter)是一个包装流(2)节点流:可以直接读取源数据的流(直接点说:就是参数可以是数据源) 6流)。字节流字符流备注FileOu
2、tputStreamFileInputStreamFileWriterFileReader二进制文件用字节流,字符文件用字符流PipedOutputStreamPipedInputStreamPipedWriterPipesReader主要用于线程间通信处理流(过滤流)BufferedOutputStreamBufferedInputStreamBufferdWriterBufferedReader带有缓冲的流,只有在缓冲满的时候或者手动刷新的时候DataOutputStreamDataInputStream无读写基本类型的数据的方法PrintStreamPrintWriter主要用于记录日志
3、,格式化的输出,所见即所输入,在构造的时候,确定是否自动刷新ObjectOutputStreamObjectInputStream无对象的序列化OutputStreamWriterInputStreamReader无用于字节流和字符流的转化(桥转换流)JavaIO的一般使用原则:一、按数据来源(去向)分类:1、是文件:FileInputStream,FileOutputStream,FileReader,FileWriter2、是byte[]:ByteArrayInputStream,ByteArrayOutputStream3、是Char[]:CharArrayReader,CharArra
4、yWriter4、是String:StringBufferInputStream,StringReader,StringWriter5、网络数据流:InputStream,OutputStream,Reader,Writer二、按是否格式化输出分:1、要格式化输出:PrintStream,PrintWriter三、按是否要缓冲分:1、要缓冲:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter四、按数据格式分:1、二进制格式(只要不能确定是纯文本的):InputStream,OutputStream及其所有
5、带Stream结束的子类2、纯文本格式(含纯英文与汉字或其他编码方式);Reader,Writer及其所有带Reader,Writer的子类五、按输入输出分:1、输入:Reader,InputStream类型的子类2、输出:Writer,OutputStream类型的子类六、特殊需要:1、从Stream到Reader,Writer的转换类:InputStreamReader,OutputStreamWriter2、对象输入输出:ObjectInputStream,ObjectOutputStream3、进程间通信:PipeInputStream,PipeOutputStream,PipeRea
6、der,PipeWriter4、合并输入:SequenceInputStream(序列流)5、更特殊的需要:PushbackInputStream,PushbackReader,LineNumberInputStream,LineNumberReader决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):第一,考虑最原始的数据格式是什么:是否为文本?第二,是输入还是输出?第三,是否需要转换流:InputStreamReader,OutputStreamWriter?第四,数据来源(去向)是什么:文件?内存?网络?第五,是否要缓冲:bufferedReader(特别注明:一定要注意的
7、是readLine()是否有定义,有什么比read,write更特殊的输入或输出方法)第六,是否要格式化输出:print?(二):使用注意:1:打开一个流之后,一定要注意关闭。2:OutputStreamos=newOutputStream(2,txt);注意:调用完这句话的时候,就会创建一个2.txt文件,如果原来已经有了这个文件,则会把原来的删掉,再创建一个新的。如果需要追加:则这样构造:Ou