Lập trình truyền thông: Vào/Ra với Stream trong Java – VOER

Là loại stream cho phép chương trình nhận dữ liệu từ ngoại vi. Có các phương thức cơ bản sau:

import java.io.*;public class InStream1 { public static void main(String args[]) { InputStream is = System.in; // KeyBoard = System.in while (true) { try { int ch = is.read(); if (ch ==-1 || ch ==’q’) break; System.out.print((char)ch); } catch (IOException ie) { System.out.print(“Error: “+ie); } } }}

int available() 

Trả về số lượng byte hiện có trong Stream mà không làm nghẽn chương trình.

Ví dụ:

Lưu chương trình sau vào tập tin có tên InStream2.java

import java.io.*;public class InStream2 {    public static void main(String args[]) {            InputStream is = System.in; // KeyBoard = System.in            while (true) {                try {                    int num = is.available();                    if (num > 0){                        byte[] b = new byte[num];                         int result = is.read(b);                         if (result == -1) break;                         String s = new String(b);                         System.out.print(s);                     } else {                        System.out.print(‘.’);                    }                } catch (IOException ie) {                    System.out.print(“Error: “+ie);                }            }    }}

Biên dịch và thực thi ta được kết quả sau:


Kết quả biên dịch chương trình InStream2.Java

Điểm khác biệt trong ví dụ này là các ký tự ta nhập từ bàn phím sẽ không hiển thị tức thì trên màn hình. Chúng chỉ hiển thị sau khi chúng ta nhấn phím Enter.