Java初学者入门——IO包的学习引导
什么是IO
IO(输入/输出)是计算机输出/输出的接口。Java的核心库Java.io提供了全面的io接口,包括文件读写、标准设备输出等等。在Java IO中,I/O是基于流的输入和输出,所有数据都被序列化到输出流中或者从输入流中读入。此外,Java还支持块传输,核心库java.nio采用了块IO我们后面会专门讨论nio。
流式IO的优点是简单易用,缺点是效率低。IO块效率高,但编程复杂。
Java IO模型
Java的IO模型设计非常优秀。它使用Decorator模式按功能划分流,您可以动态地组装这些流以获得您需要的功能。例如,如果您需要一个缓冲的FileInputStream,您应该使用fileinputstream和BufferedInputStream的组合。
Java的IO系统分为输入/输出和读写器。不同的是读写器在读写文本时可以自动转换内码。基本上所有的IO类都是成对的,也就是有XxxInput就有对应的XxxOutput。
Java IO教程
如果你很了解Decorator模式,你很容易看出Java的IO类结构:根接口是InputStream/OutputStream,充当数据源的IO类有file InputStream/file OutputStream,bytearray InputStream/bytearray OutputStream等。用作装饰函数的IO类包括缓冲输入流/缓冲输出流。data inputstream/data output stream等。,都是继承的装饰接口filter inputstream/filter outputstream。使用IO时,先创建一个数据源IO,然后根据需要的功能创建一个装饰类IO。其构造函数的参数是创建的数据源IO。让我们以创建缓冲文件输入流为例。我们假设需要从磁盘中读取文件“C:\ log . txt”:
file InputStream file Input = New file InputStream(" C:\ \ log
//创建一个缓冲的InputStream:
Buffered InputStream Buffered Input = New Buffered InputStream(file Input);
//现在的bufferedInput是缓冲的文件输入流
或者进一步缩写如下:
InputStream Input = New Buffered InputStream(
]ew file Input
//现在的输入是缓冲的文件输入流
在您对Java IO有了大致的了解之后,我们推荐您看一下Java I/O和I的教程介绍
Java NIO编程
NIO提供对块IO的支持。使用块IO的好处是效率更高。而且Java的NIO会直接调用操作系统提供的很多高级IO接口,支持块传输、读写锁定、异步IO等功能。,效率很高。NIO的编程模型是通道和缓冲区,所以推荐你阅读《新I/O入门(中文)》。
0条评论