Java输入/输出教程

Java输入/输出(I/O)处理从源读取数据并将数据写入目标。通常,读取存储在文件中的数据或使用I/O将数据写入到文件中。

java.iojava.nio包中包含处理输入/输出的Java类。java.io包具有执行I/O的类。java.nio包是新的I/O包。

java.io包中的类都与基于流的I/O操作有关。 基于流的I/O使用流在数据源和Java程序之间传输字节数据。

Java程序每次从一个字节读取或写入一个字节。这种执行I/O操作的方法很慢。流可以用于单向数据传输。 输入流只能将数据从数据源传输到Java程序,而输出流只能将数据从Java程序传输到数据目标。

新输入/输出(NIO)解决了基于流的I/O中的慢速问题。在NIO中处理I/O操作的通道和缓冲区。一个通道就像一个流。它表示数据源和Java程序之间的连接。

通道提供双向数据传输工具,可以使用通道来读取数据以及写入数据。可以获得只读通道,只写通道或读写通道。缓冲区是有界数据容器,具有确定其可能包含数据的上限固定容量。

在基于流的I/O中,可直接将数据写入流。 在基于通道的I/O中将数据写入缓冲区,并将该缓冲区传递到将数据写入数据目标的通道。

当从数据源读取数据时,向一个通道传递一个缓冲区。通道将数据从数据源读入缓冲区。

Java 7引入了新的输入/输出API,它提供了一个新的I/O API。 它提供了原始文件I/O API中缺少的一些功能。它向Java类库添加了三个包:java.nio.filejava.nio.file.attributejava.nio.file.spi

新的输入/输出API以统一的方式处理所有文件系统。新输入/输出API提供的文件系统支持是可扩展的。新的输入/输出API支持所有文件系统上的基本文件操作(复制,移动和删除)。它支持符号链接。

它支持访问文件系统和文件的属性。可以创建一个监视服务来监视目录上的任何事件,例如添加新文件或子目录,删除文件等。


开始学习 >> :