Hướng dẫn sử dụng Java CharArrayReader
Xem thêm các chuyên mục:
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:
Methods
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)
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 CharArrayReader và CharArrayWriter để 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