รับข้อมูลจากแป้นพิมพ์แบบตัวอักษร
การรับข้อมูลเข้าทางแป้นพิมพ์ทีละตัวอักษรสามารถใช้เมธอดที่อยู่ใน System Class ได้ทันที การรับข้อมูลนั้นจะรับจากแป้นพิมพ์ทุกตัวอักษร แต่จำเป็นต้องสั่ง throws IOException หรือใช้ try catch() คลุมความผิดพลาดที่อาจเกิดขึ้นจาก read()
ขั้นตอนการรับข้อมูลผ่านแป้นพิมพ์แบบตัวอักษร
- import java.io.*;
- public static void main(String args[]) throws IOException {
- int buf1 = System.in.read(); // output is integer
- char buf2 = (char)System.in.read(); // output is character
- char buf3 = System.in.read(); // compile error : loss precision
ตัวอย่าง 3.1 รับข้อมูลทีละตัวอักษร 3 ตัวอักษรมาแสดงผล
import java.io.*;
class x { public static void main(String args[]) throws IOException { char buf1; buf1 = (char)System.in.read(); System.out.println(“Output is “+buf1); int buf2 = System.in.read(); System.out.println(“Output is “+buf2); buf2 = System.in.read(); System.out.println(“Output is “+buf2); } } |
ตัวอย่างผลลัพธ์
a Output is a Output is 13 Output is 10
|
ตัวอย่าง 3.2 รับข้อมูล 2 ตัวอักษรจากแป้นพิมพ์
import java.io.*;
class x {
public static void main(String args[]) throws IOException {
int buf;
buf = System.in.read();
System.out.println(buf + “:”);
buf = System.in.read();
System.out.println(buf);
System.out.println(“.”);
}
}
ตัวอย่าง 3.3 นำตัวอักษรที่รับเข้ามาไปประมวลผล
import java.io.*;
class x {
public static void main(String args[]) throws IOException {
char buf1,buf2;
buf1 = (char)System.in.read(); // a
buf2 = (char)System.in.read(); // b
System.out.println(“Out=” + buf1 + buf2); // Out=ab
System.out.println(buf1 + buf2); // 195
System.out.println(buf1 + buf2 + “5” + buf2); // 1955b
}
}
ตัวอย่าง 3.4 รับข้อมูลจนกว่าจะเป็นตัวอักษร 0 โดยแสดงผลเป็นรหัสแอสกี้
– ต้องกดปุ่ม enter เพื่อสั่งสิ้นสุดการ Read
import java.io.*;
class x {
public static void main(String args[]){
System.out.println(“Get until receive 0 [hidden is 13, 10]”);
int buf = 0;
do {
try { buf = System.in.read(); }
catch(IOException ex) { System.out.println(ex); }
System.out.println(“Output is “+buf);
} while (buf != 48);
}
}
ตัวอย่าง 3.5 รับข้อมูลจนกว่าจะเป็นตัวอักษร 0 โดยแสดงผลเป็นตัวอักษร
– รับข้อมูลแบบ character ทีละ 1 ตัวอักษร
– รับต่อกันไปจนรับตัวอักษร 0 จึงหยุดการทำงาน
import java.io.*;
class x {
public static void main(String args[]) throws IOException {
char buf;
do {
buf = (char)System.in.read();
System.out.println(“Output is “+buf);
} while (buf != ‘0’);
}
}