20.5.1 读文件(JDK 7之前)(1)
下面重写前面显示的两个基于通道的文件输入示例,从而只使用JDK 7之前的特性。第一个例子通过手动分配缓存,然后执行显式的读操作来读取文件。第二个例子使用映射文件,自动进行读文件过程。
如果使用JDK 7之前的Java版本,当使用通道和手动分配的缓存读文件时,首先需要使用在第19章解释的相同机制,使用FileInputStream为读操作打开文件。接下来,通过对FileInputStream对象调用getChannel()方法,获取链接到这个文件的通道。该方法的一般形式如下所示:
- FileChannel getChannel( )
这个方法返回一个FileChannel对象,该对象为文件操作封装了通道。然后,调用allocate()方法以分配缓存。因为文件通道操作字节缓存,所以需要使用ByteBuffer定义的allocate()方法,在前面介绍过该方法的工作方式。
下面的程序显示了JDK 7之前的Java版本,如何使用显式输入操作的通道读取并显示test.txt文件的内容:
|