當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java CharArrayReader mark(int)用法及代碼示例


一旦調用reset(),則Java中CharArrayReader類的mark()方法用於將流標記為從開始​​讀取流的檢查點。 CharArrayReader類的所有子類均不支持此方法。

用法:

public void mark(int readAheadLimit)

參數:此方法接受強製性參數readAheadLimit,該參數是在保留標記的同時可以讀取的字符數限製。讀取了這麽多字符後,嘗試重置流可能會失敗。


返回值:此方法不返回任何值。

異常:如果在不支持輸入輸出或mark()方法時發生某些錯誤,則此方法將引發IOException。

下麵的方法說明了mark()方法的用法方式:

示例1:

// Java program to demonstrate 
// CharArrayReader mark() method 
  
import java.io.*; 
import java.util.*; 
  
class GFG { 
    public static void main(String[] args) 
    { 
  
        try { 
  
            char[] str = { 'G', 'e', 'e', 'k', 's', 
                           'F', 'o', 'r', 
                           'G', 'e', 'e', 'k', 's' }; 
  
            // Create a CharArrayReader instance 
            CharArrayReader reader 
                = new CharArrayReader(str); 
  
            // Get the character 
            // to be read from the stream 
            int ch; 
  
            // Read the first 10 characters 
            // to this reader using read() method 
            // This will put the str in the stream 
            // till it is read by the reader 
            for (int i = 0; i < 10; i++) { 
                ch = reader.read(); 
                System.out.print((char)ch); 
            } 
  
            System.out.println(); 
  
            // mark the stream for 
            // 5 characters using mark() 
            reader.mark(5); 
  
            // reset the stream position 
            reader.reset(); 
  
            // Read the 5 characters from marked position 
            // to this reader using read() method 
            for (int i = 0; i < 5; i++) { 
                ch = reader.read(); 
                System.out.print((char)ch); 
            } 
        } 
        catch (Exception e) { 
            System.out.println(e); 
        } 
    } 
}
輸出:
GeeksForGe
eks??

示例2:

// Java program to demonstrate 
// CharArrayReader mark() method 
  
import java.io.*; 
import java.util.*; 
  
class GFG { 
    public static void main(String[] args) 
    { 
  
        try { 
            char[] str = { 'G', 'e', 'e', 'k', 
                           's', 'F', 'o', 'r', 
                           'G', 'e', 'e', 'k', 's' }; 
  
            // Create a CharArrayReader instance 
            CharArrayReader reader 
                = new CharArrayReader(str); 
  
            // Get the character 
            // to be read from the stream 
            int ch; 
  
            // Read the first 10 characters 
            // to this reader using read() method 
            // This will put the str in the stream 
            // till it is read by the reader 
            for (int i = 0; i < 10; i++) { 
                ch = reader.read(); 
                System.out.print((char)ch); 
            } 
  
            System.out.println(); 
  
            // mark the stream for 
            // 10 characters using mark() 
            reader.mark(10); 
  
            // reset the stream position 
            reader.reset(); 
  
            // Read the 1 characters from marked position 
            // to this reader using read() method 
            for (int i = 0; i < 1; i++) { 
                ch = reader.read(); 
                System.out.print((char)ch); 
            } 
        } 
        catch (Exception e) { 
            System.out.println(e); 
        } 
    } 
}
輸出:
GeeksForGe
e

參考: https://docs.oracle.com/javase/9/docs/api/java/io/CharArrayReader.html#mark-int-



相關用法


注:本文由純淨天空篩選整理自Code_r大神的英文原創作品 CharArrayReader mark(int) method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。