位置:首頁 > Java技術 > Java.io包 > java.io.InputStreamReader.read(char[] cbuf, int offset, int length)方法實例

java.io.InputStreamReader.read(char[] cbuf, int offset, int length)方法實例

java.io.InputStreamReader.read(char[] cbuf, int offset, int length) 方法讀取字符到一個數組中的一個部分。

聲明

以下是java.io.InputStreamReader.read(char[] cbuf, int offset, int length)方法的聲明:

public int read(char[] cbuf, int offset, int length)

參數

  • cbuf --目標字符緩衝區

  • offset -- 偏移量開始存儲字符的位置

  • length -- 要讀取的字符數上限值

返回值

該方法返回讀取的字符數,否則如果流的末尾已到達返回-1。

異常

  • IOException -- 如果發生I/ O錯誤

例子

下麵的例子顯示java.io.InputStreamReader.read(char[] cbuf, int offset, int length)方法的用法。

package com.yiibai;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputStreamReaderDemo {
   public static void main(String[] args) throws IOException {
      
      FileInputStream fis = null;
      InputStreamReader isr =null;
      char[] cbuf = new char[5];
      int i;
      
      try {
         // new input stream reader is created 
         fis = new FileInputStream("C:/test.txt");
         isr = new InputStreamReader(fis);
         
         // reads into the char buffer
         i = isr.read(cbuf, 2, 3);
         
         // prints the number of characters
         System.out.println("Number of characters read: "+i);
         
         // for each character in the character buffer
         for(char c:cbuf)
         {
            // for empty character
            if(((int)c)==0)
               c='-';
            
            // prints the characters
            System.out.println(c);
         }
      } catch (Exception e) {
      
         // print error
         e.printStackTrace();
      } finally {
         
         // closes the stream and releases resources associated
         if(fis!=null)
            fis.close();
         if(isr!=null)
            isr.close();
      }   
   }
}

假設我們有一個文本文件c:/ test.txt,它具有以下內容。該文件將被用作輸入到我們的示例程序:

ABCDE

讓我們編譯和運行上麵的程序,這將產生以下結果:

Number of characters read: 3
-
-
A
B
C