openplanning

Hướng dẫn và ví dụ Java CharArrayReader

  1. CharArrayReader
  2. Examples

1. CharArrayReader

CharArrayReader là lớp con của Reader. Đúng với cái tên, CharArrayReader được sử dụng để đọc một mảng các ký tự theo phong cách của một Reader.
CharArrayReader​ constructors
CharArrayReader​(char[] buf)     

CharArrayReader​(char[] buf, int offset, int length)
Các phương thức của CharArrayReader:
public void close()  

public void mark​(int readAheadLimit)  
public boolean markSupported()  

public static Reader nullReader()  

public int read()  
public int read​(char[] cbuf)  
public int read​(char[] cbuf, int off, int len)  
public int read​(CharBuffer target)

public boolean ready()  
public void reset()  
public long skip​(long n)  
public long transferTo​(Writer out)

2. Examples

Ví dụ: Đọc một mảng ký tự theo phong cách của một Reader:
CharArrayReaderEx1.java
package org.o7planning.chararrayreader.ex;

import java.io.CharArrayReader;
import java.io.IOException;

public class CharArrayReaderEx1 {

    public static void main(String[] args) throws IOException {

        char[] charArray = new char[] { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 't', 'e', 'x', 't' };

        CharArrayReader reader = new CharArrayReader(charArray);
        
        int code;
        while((code = reader.read()) != -1) {
            char ch = (char) code;
            System.out.println(ch);
        }
    }
}
Output:
T
h
i
s
 
i
s
 
t
e
x
t
Ví dụ: Sử dụng CharArrayReaderCharArrayWriter để loại bỏ các ký tự không phải là chữ số (digit) ra khỏi một văn bản.
CharArrayReaderEx2.java
package org.o7planning.chararrayreader.ex;

import java.io.CharArrayReader;
import java.io.CharArrayWriter;
import java.io.IOException;

public class CharArrayReaderEx2 {

    public static void main(String[] args) throws IOException {

        String originText = "Log20210217.txt";
        
        char[] charArray = originText.toCharArray();

        CharArrayReader reader = new CharArrayReader(charArray);
        CharArrayWriter writer = new CharArrayWriter();
        
        int code;
        while((code = reader.read()) != -1) {
            // '0', '1', ... '9'
            if(code >= 48 && code <= 57) {
                writer.write(code);
            }
        }
        char[] newCharArray = writer.toCharArray(); // ['2','0','2','1','0','2','1','7']
        System.out.println(newCharArray);
        
        String newText = writer.toString();
        System.out.println(newText);
    }
}
Output:
20210217
20210217
Ví dụ: Một văn bản gồm nhiều dòng, loại bỏ các khoảng trắng ở đầu và cuối của mỗi dòng để tạo ra một văn bản mới.
CharArrayReaderEx3.java
package org.o7planning.chararrayreader.ex;

import java.io.BufferedReader;
import java.io.CharArrayReader;
import java.io.IOException;

public class CharArrayReaderEx3 {

    public static void main(String[] args) throws IOException {
        String originText = "  One \n Two \t\n \t\t Three ";
        
        System.out.println(originText);
        System.out.println("-----------");
        
        String newText = trimLines(originText);
        System.out.println(newText);
    }  
    
    private static String trimLines(String string) throws IOException {
        CharArrayReader reader = new CharArrayReader(string.toCharArray());
        
        BufferedReader in = new BufferedReader(reader);
        StringBuilder sb = new StringBuilder(string.length());
        
        String line;
        while ((line = in.readLine()) != null) {
            sb.append(line.trim()).append('\n');
        }
        return sb.toString();
      }
}
Output:
One
 Two     
          Three
-----------
One
Two
Three

Các hướng dẫn Java IO

Show More