欢迎来到天天文库
浏览记录
ID:37919647
大小:143.00 KB
页数:11页
时间:2019-06-02
《JavaIO流详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JavaIO流详解参考网址:http://www.cnblogs.com/kevinyangxu/archive/2010/11/28/1890248.htmlhttp://www.cnblogs.com/qamefay/archive/2011/09/01/2161495.htmlJavaIO流一流的概念 流(Stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的某些
2、区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。 流的方向是重要的,根据流的方向,流可以分为2类:输入流和输出流。用户可以从输入流中读取信息,但不能写它。相反,对输出流,只能往输入流写,但不能读它。 实际上,流的源端和目的端可简单的看成是字节的生产者和消费者,对输入流,可不必关心它的源端是什么,只要简单地从流中读取数据,而对输出流,也可不知道它的目的端,只是简单的往流中写数据。二流的三种分类方式 1.按流的方向分为:输入流和输出流 2.按流的数据单位不同分为:字节流和字符流
3、 3.按流的功能不同分为:节点流和处理流三流的层次结构 四缓冲流: 缓冲流要套接在相应的节点流觞,提高了读写的效率。 此处理流的构造方法都得传相对应的基类类型 BufferedReader:提供了readLine方法,用于高效读取一行字符串 BufferedWriter:提供了newLine用于写入一个行分隔符也就是换行 五转换流:主要作用将字节流转换成字符流。 InputStreamReader需要和InputStream套接 Ou
4、tputStreamWriter需要和OutputStream套接 eg: InputStremReaderinput=newInputStreamReader(newFileInputStream(...));六流的结构: 根接口:InputStream/OutputStream 充当数据源的IO类有FileInputStream/FileOutputStream,ByteArrayInputStream/ByteArrayOutputStream等。 充当装饰功能的IO类BufferedInputS
5、tream/BufferedOutputStream,DataInputStream/DataOutputStream等。 它们都是继承装饰接口FilterInputStream/FilterOutputStream. 使用IO时,首先创建一个数据源IO,然后根据需要的功能创建装饰类IO,其构造函数的参数为以创建的数据源IO eg: 我们以创建一个具有缓冲的文件输入流为例,假定需要从磁盘读取文件“C:log.txt”: //创建一个FileInputStream: FileInp
6、utStreamfileInput=newFileInputStream(”C:\log.txt”); //创建一个BufferedInputStream: BufferedInputStreambufferedInput=newBufferedInputStream(fileInput); //现在得到的bufferedInput即是具有缓冲的文件输入流 或者进一步简写如下: InputStreaminput=newBufferedInputStream(newFileInputStream
7、(”C:\log.txt”)); //现在得到的input即是具有缓冲的文件输入流 java.io.Reader和java.io.InputStream区别 java.io.Reader和java.io.InputStream组成了Java输入类。Reader用于读入16位字符,也就是Unicode编码的字符;而InputStream用于读入ASCII字符和二进制数据。在Java中,有不同类型的Reader输入流对应于不同的数据源: FileReader用于从文件输入; CharArrayReade
8、r用于从程序中的字符数组输入; StringReader用于从程序中的字符串输入; PipedReader用于读取从另一个线程中的PipedWriter写入管道的数据。相应的也有不同类型的InputStream输入流对应于不同的数据源: FileInputStre
此文档下载收益归作者所有