Java: Lớp Console


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

NIO trong Java là các ký tự viết tắt của New Input/Output. Nó là một tập hợp các API Java cung cấp các hoạt động nhập/xuất chuyên sâu. Gói java.nio.file cung cấp các hỗ trợ toàn diện cho các hoạt động nhập và xuất. Có nhiều lớp trong API, nhưng trong phần này ta chỉ tìm hiểu một số trong chúng. Gói java.nio chủ yếu dùng để định nghĩa các bộ đêm là những bộ chứa dữ liệu, API này dễ dùng.

Từ bản Java SE 6 đã giới thiệu lớp Console để nâng cao và đơn giản hóa việc triển khai các ứng dụng dòng lệnh. Giả sử bạn là một nhà phát triển phần mềm và bạn không muốn hiển thị các ký tự mà người dùng đã soạn ra từ một ứng dụng dựa trên console như tên đăng nhập chẳng hạn. Trước đó, điểu này chỉ có thể thực hiện được với các ứng dụng dựa trên giao diện người dùng đồ họa (GUI). Java SE 6 đã đưa ra một giải pháp đó là giới thiệu lớp Console. Lớp này là một phần của gói java.io có khả năng đọc văn bản từ thiết bị đầu cuối mà không bị lặp trên màn hình. Đối tượng Console cung cấp các luồng nhập và xuất ký tự thông qua các lớp Reader và Writer của nó.

Lớp Console cung cấp các phương thức khác nhau để truy cập các thiết bị console dựa trên ký tự. Những thiết bị này cần phải được kết hợp với các máy ảo hiện thời. Ngay cả khi một máy ảo có một giao diện điều khiển phụ thuộc vào cách thức của máy ảo được gọi, thì lời gọi tự động của máy ảo sẽ không có một giao diện điều khiển nào liên kết tới nó.

Không có hàm tạo nào cho lớp Console. Để có được thể hiện của lớp này thì ta cần gọi phương thức System.console(). Phương thức này trả về đối tượng Console nếu nó có sẵn, ngược lại nó trả về null. Hiện nay, các phương thức của lớp Console chỉ có thể được gọi từ dòng lệnh và không thể được gọi từ Integrated Development Environments (IDEs) như Eclipse, NetBeans.

Lớp này cung cấp các phương thức để thực hiện các hoạt động nhập và xuất trên các luồng ký tự.

Phương thức readLine() sẽ đọc một dòng văn bản từ giao diện điều khiển. Phương thức readPassword() đọc mật khẩu từ console mà không bị lặp trên màn hình. Phương thức trả về một mảng ký tự và một đối tượng chuỗi nào thay đổi được mật khẩu. Mật khẩu sẽ bị xóa khỏi bộ nhớ khi nó không còn được dùng đến nữa.

Bảng dưới đây liệt kê các phương thức khác nhau của lớp Console.

Phương thức Mô tả
format(String fmt, Object...args) Hiển thị dữ liệu có định dạng ra output
printf(String fmt, Object...args) Hiển thị dữ liệu có định dạng ra output một cách thuận tiện
reader() Trả về một đối tượng java.io.Reader duy nhất mà được kết hợp với console
readLine(String fmt, Object...args) Dùng để nhập chuỗi từ console

Đoạn mã sau thể hiện cách dùng các phương thức của lớp Console.

package solutions;

import java.io.Console;
import java.io.IOError;

public class demo {

  public static void main(String[] args) {
    Console cons = System.console();
    if (cons == null) {
      System.err.println("No console device is present!");
      return;
    }

    try {
      String username = cons.readLine("Enter your username: ");
      char[] pwd = cons.readPassword("Enter your secret Password: ");
      System.out.println("Username = " + username);
      System.out.println("Password entered was = " + new String(pwd));
    } catch (IOError ioe) {
      cons.printf("I/O problem: %s\n", ioe.getMessage());
    }
  }
}

Đoạn mã trên nhập vào tên đăng nhập và mật khẩu từ người dùng thông qua console sử dụng các phương thức readLine() và readPassword(). Phương thức System.console() trả về đối tượng Console nếu nó là có sẵn để đọc tên đăng nhập và mật khẩu.

» Tiếp: Gói java.util.zip
« Trước: Câu hỏi và bài tập phần java.io file
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!