java io详解 【2】

java io详解 【2】

ID:6074925

大小:206.02 KB

页数:14页

时间:2018-01-02

java io详解 【2】_第1页
java io详解 【2】_第2页
java io详解 【2】_第3页
java io详解 【2】_第4页
java io详解 【2】_第5页
资源描述:

《java io详解 【2】》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、javaio详解什么是IO IO(Input/Output)是计算机输出/输出的接口。Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。此外,Java也对块传输提供支持,在核心库java.nio中采用的便是块IO。关于NIO我们在后面还有专门的讨论。   流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。 Java IO模型Java的IO模型设计非常优秀,它使用Decorator模式,

2、按功能划分Stream,您可以动态装配这些Stream,以便获得您需要的功能。例如,您需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。   Java的IO体系分Input/Output和Reader/Writer两类,区别在于Reader/Writer在读写文本时能自动转换内码。基本上,所有的IO类都是配对的,即有XxxInput就有一个对应的XxxOutput。 Java IO教程如果您对Decorator模式非常了解,就能轻易地看出Java的IO类结构:根接

3、口是InputStream/OutputStream,充当数据源的IO类有FileInputStream/FileOutputStream,ByteArrayInputStream/ByteArrayOutputStream等,充当装饰功能的IO类有BufferedInputStream/BufferedOutputStream,DataInputStream/DataOutputStream等,它们都是继承装饰接口FilterInputStream/FilterOutputStream。使用IO时,首先创建一个数据源IO,然后

4、根据需要的功能创建装饰类IO,其构造函数的参数为已创建的数据源IO。我们以创建一个具有缓冲的文件输入流为例,假定需要从磁盘读取文件“C:log.txt”:// 创建一个FileInputStream: FileInputStream fileInput = new FileInputStream("C:\log.txt"); // 创建一个BufferedInputStream: BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);  

5、// 现在得到的bufferedInput即是具有缓冲的文件输入流或者进一步简写如下:InputStream input = new BufferedInputStream( new FileInputStream("C:\log.txt"));// 现在得到的input即是具有缓冲的文件输入流在您对Java的IO有了总体了解后,我们推荐您看看教程Introduction to Java I/O和I/O: Reading and Writing。浅谈java输入输出流一.字符流与字节流的区别:   Java流在处理上分为字符流

6、和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。Java内用Unicode编码存储字符,字符流处理类负责将外部的其他编码的字符流和java内Unicode字符流之间的转换。而类InputStreamReader和OutputStreamWriter处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。(一)以字节为导向的stream(InputStream/OutputStream)InputSt

7、ream和OutputStream是两个abstact类,对于字节为导向的stream都扩展这两个鸡肋(基类^_^);1、InputStream1.1ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用.(A)---ByteArrayInputStream(byte[])创建一个新字节数组输入流(ByteArrayInputStream),它从指定字节数组中读取数据(使用byte作为其缓冲区数组)(B)---ByteArrayInputStream(byte[],int,int)创建一个新

8、字节数组输入流,它从指定字节数组中读取数据。注:该字节数组未被复制。1.2StringBufferInputStream:把一个String对象作为InputStream.StringBufferInputStream(String)据指定串创建一个读取数据的输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。