openplanning

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

Xem thêm các chuyên mục:

Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

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

Xem thêm các chuyên mục: