Java Java.io.FileInputStream.getChannel() 方法

  • 描述

    java.io.FileInputStream.getChannel()返回与此文件输入流关联的唯一FileChannel对象。到目前为止,返回通道的位置(从文件读取的字节数)。
  • 声明

    以下是java.io.FileInputStream.getChannel()方法的声明-
     public FileChannel getChannel()
  • 参数

    不适用
  • 返回值

    该方法返回与此文件输入流关联的通道。
  • 异常

    不适用
  • 例子

    以下示例显示java.io.FileInputStream.getChannel()方法的用法。
     
    package com.jc2182; 
    import java.io.IOException;
    import java.io.FileInputStream;
    import java.nio.channels.FileChannel;
    
    public class FileInputStreamDemo {
       public static void main(String[] args) throws IOException {
          FileChannel fc = null;
          FileInputStream fis = null;
          int i = 0;
          long pos;
          char c;
          
          try {
             // create new file input stream
             fis = new FileInputStream("C://test.txt");
             
             // read till the end of the file
             while((i = fis.read())!=-1) {
             
                // get file channel
                fc = fis.getChannel();
                
                // get channel position
                pos = fc.position();
                
                // integer to character
                c = (char)i;
                
                // prints
                System.out.print("No of bytes read: "+pos);
                System.out.println("; Char read: "+c);
             }
             
          } catch(Exception ex) {
             // if an I/O error occurs
             System.out.println("IOException: close called before read()");
          } finally {
             // releases all system resources from the streams
             if(fis!=null)
                fis.close();
             if(fc!=null)
                fc.close();
          }
       }
    }
    
    假设我们有一个文本文件c:/test.txt ,其内容如下。该文件将用作示例程序的输入-
     ABCDEF
    让我们编译并运行以上程序,这将产生以下结果-
     
    No of bytes read: 1; Char read: A
    No of bytes read: 2; Char read: B
    No of bytes read: 3; Char read: C
    No of bytes read: 4; Char read: D
    No of bytes read: 5; Char read: E
    No of bytes read: 6; Char read: F