Bài 30: Sử dụng luồng ký tự trong Java
Ở những bài trước, mình đã giới thiệu với các bạn việc sử dụng luồng byte để nhập và xuất dữ liệu ký tự. Nhưng trong nhiều trường hợp luồng byte không phải là cách tốt nhất để quản lý nhập xuất dữ liệu ký tự. Trong lập trình Java có kiểu luồng ký tự phục vụ riêng cho việc nhập xuất dữ liệu trên luồng. Mức trên cùng là 2 lớp trừu tường Reader và Writer. Các lớp dẫn xuất từ Reader và Writer hỗ trợ thao tác trên các luồng ký tự Unicode.
- Những phương thức định nghĩa trong lớp trừu tượng
Bài này sẽ là nhập xuất ký tự và chuỗi sử dụng luồng ký tự, bài sau mình sẽ giới thiệu cách đọc ghi file dùng luồng ký tự!
1, Nhập Console dùng luồng ký tự:
- Để đọc dữ liệu nhập từ Console thì lớp tốt nhất là lớp BufferdReader. Nhưng ở đây, chúng ta không có cách nào xây dựng 1 lớp BufferedReader trực tiếp từ System.in vì thế nên cần chuyển nó thành luồng ký tự bằng cách dùng InputStreamReader để chuyển byte thành ký tự!
- Để có được một đối tượng InputStreamReader gắn với System.in ta dùng constructor của InputStreamReader.
InputStreamReader(InputStream inputStream)
- Tiếp theo dùng đối tượng InputStreamReader đã tạo ra để tạo ra một BufferedReader dùng constructor BufferedReader.
BufferedReader(Reader inputReader)
**Ví dụ 1: Tạo một đối tượng BufferedReader gắn với bàn phím:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- Sau khi thực hiện câu lệnh trên, br là một luồng ký tự gắn với Console thông qua System.in.
Tiếp theo ta sẽ dùng BufferedReader để đọc từng ký tự từ Console. Việc đọc kết thúc khi gặp dấu chấm (dấu chấm để kết thúc chương trình).
PHP:
package javaandroidvn;
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
public class JavaAndroidVn {
public static void main(String[] args) throws IOException {
char c;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Nhập chuỗi ký tự, kết thúc bằng dấu chấm .");
do {
c = (char) br.read();
System.out.println(c);
} while (c != '.');
}
}
PHP:
package javaandroidvn;
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;
public class JavaAndroidVn {
public static void main(String[] args) throws IOException {
// Tạo đối tượng BufferedReader sử dụng System.in
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.print("Nhập chuỗi: ");
//Nhập chữ không dấu thôi nhé!
str = br.readLine();
System.out.println("Chuỗi vừa nhập là: " + str);
}
}
Tiếp tục sẽ là 1 cách khác để xuất dữ liệu ra Console. Ở đây mình nhắc tới lớp PrinWriter, nó là 1 trong các lớp luồng ký tự. Ta cần phải chỉ định System.out cho luồng xuất.
**Ví dụ 3: Tạo đối tượng PrintWriter để xuất dữ liệu ra Console, dùng lệnh:
PrintWriter pw = new PrintWriter(System.out, true);
Tiếp theo dùng PrintWriter để xuất dữ liệu ra Console
PHP:
package javaandroidvn;
import java.io.IOException;import java.io.PrintWriter;
public class JavaAndroidVn {
public static void main(String[] args) throws IOException {
int i = 2013;
String str = "Android.Vn ";
//Xuất dữ liệu sử dụng PrintWriter
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("Using a PrintWriter.");
pw.println(str+i);
}
}
0 nhận xét:
Post a Comment