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


Java Java.io.StringReader用法及代碼示例


Java 中的 StringReader 類是一個字符流類,其源是字符串。它繼承了Reader類。不需要關閉StringReader,因為沒有使用網絡套接字和文件等係統資源。讓我們檢查一下有關 Java 中StringReader 類的更多要點。

在 Java 中聲明 StringReader 類

public class StringReader extends Reader  

Java StringReader 類中的構造函數

Java中與StringReader類一起使用的構造函數如下:

StringReader(String s) : Creates a new string reader.

Java StringReader 類中的方法

JavaStringReader類中的方法如下:

方法 說明
int read() 讀取單個字符
int 讀取(char[] cbuf, int 關閉, int len) 將字符讀入數組的一部分
布爾值ready() 告知該流是否已準備好讀取
布爾值markSupported() 告知流是否支持標記
無效標記(int readAheadLimit) 標記流中存在位置中存在的標記
無效reset() 將流重置為最近的標記,或者重置為字符串的開頭(如果從未標記過)。
長跳過(長 ns) 重置流中指定數量的字符
無效close() 關閉流

1.int read()

讀取單個字符。

Syntax :public int read() throws IOException

返回:
The character read, or -1 if the end of the stream has been reached

Throws:
IOException

2. int 讀取(char[] cbuf, int off, int len)

將字符讀入數組的一部分。

Syntax :public int read(char[] cbuf,int off, int len)
         throws IOException

參數:
cbuf - Destination buffer
off - Offset at which to start writing characters
len - Maximum number of characters to read

返回:
The number of characters read, or -1 if the end of the stream has been reached
Throws:
IOException

3.布爾值ready()

告知該流是否已準備好讀取。

Syntax :public boolean ready()
              throws IOException

返回:
True if the next read() is guaranteed not to block for input

Throws:
IOException

4.布爾值markSupported()

告知此流是否支持 mark() 操作(它確實支持)。

Syntax :public boolean markSupported()

返回:
true if and only if this stream supports the mark operation.

5. 無效標記(int readAheadLimit)

標記流中的當前位置。對 reset() 的後續調用會將流重新定位到這一點。

Syntax :public void mark(int readAheadLimit)
          throws IOException

參數:
readAheadLimit - Limit on the number of characters that may 
be read while still preserving the mark. Because the stream's input 
comes from a string, there is no actual limit, so this argument 
must not be negative, but is otherwise ignored.

Throws:
IllegalArgumentException
IOException

6.無效reset()

將流重置為最近的標記,或者重置為字符串的開頭(如果從未標記過)。

Syntax :public void reset()
           throws IOException

Throws:
IOException 

7. 長跳過(long ns)

它跳過流中指定數量的字符。返回跳過的字符數。 ns 參數可能為負數,即使 Reader 超類的 Skip 方法在這種情況下會引發異常。 ns 的負值會導致流向後跳過。負返回值表示向後跳躍。不可能向後跳到字符串的開頭。如果整個字符串已被讀取或跳過,則此方法無效並始終返回 0。

Syntax :public long skip(long ns)
          throws IOException

參數:
ns - The number of characters to skip

返回:
The number of characters actually skipped

Throws:
IOException

8.無效close()

關閉流並釋放與其關聯的所有係統資源。關閉流後,進一步的 read()、ready()、mark() 或 reset() 調用將引發 IOException。關閉之前關閉的流沒有任何效果。

Syntax :public void close()

示例

Java


// Java program demonstrating StringReader methods 
import java.io.IOException; 
import java.io.StringReader; 
  
// Driver class 
class StringReaderDemo { 
    // main function 
    public static void main(String[] args) 
        throws IOException 
    { 
        StringReader str = new StringReader( 
            " GeeksforGeeks & quot;); 
        char c[] = new char[7]; 
  
        // illustrating markSupported() 
        if (str.markSupported()) { 
            System.out.println( 
                " Mark method is supported & quot;); 
            // illustrating mark() 
            str.mark(100); 
        } 
  
        // illustrating skip() method 
        str.skip(5); 
  
        // whether this stream is ready to be read. 
        if (str.ready()) { 
            // illustrating read() method 
            System.out.print((char)str.read()); 
  
            // illustrating read(char cff[],int off,int len) 
            str.read(c); 
            for (int i = 0; i & lt; 7; i++) { 
                System.out.print(c[i]); 
            } 
        } 
  
        // illustrating reset() method 
        str.reset(); 
  
        for (int i = 0; i & lt; 5; i++) { 
            System.out.print((char)str.read()); 
        } 
  
        // illustrating close() 
        str.close(); 
    } 
}

輸出

Mark method is supported
forGeeksGeeks


相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.StringReader class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。