1.System.in 标准输入流 public static final InputStream in
in.read() 只读一个字节。
package day22;
import java.io.IOException;
import java.io.InputStream;
public class IODemo {
public static void main(String[] args) {
// system_in_test1();
system_in_2();
}
private static void system_in_test1() {
InputStream in =System.in;
try {
System.out.println(" Inpiut:");
int ch= in.read(); // 键盘输入 a 加上回车
System.out.println(ch);//阻塞 回车代表结束 '\r' ASCII 13 '\n' 10
int ch2= in.read();
System.out.println(ch2);// 输出 13
int ch3= in.read();
System.out.println(ch3);// 输出 10
} catch (IOException e) {
e.printStackTrace();
}
}
/***
* 实际输出:97 10
* a
* 97
* 10
*/
//System.in
/***
* q
* 113 System.in 只有一个对象。被close 后不能继续使用。
* 默认的输入输出流都不需要关。
* java.io.IOException: Stream closed
* at java.base/java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
*/
public static void system_in_2(){
InputStream in = System.in;
try {
int ch=in.read();
System.out.println(ch);
in.close();//关闭
InputStream in2= System.in;
int ch2= in2.read();
System.out.println(ch2);
} catch (IOException e) {
e.printStackTrace();
}
}
}
练习需求:读取用户输入的数据,转换成大写输出,输入"over" 退出。
1.可以用StringBuffer 2.使用数组
// 思路:
//StirngBuffer 保存
//使用 String 接口转换为大写
public static void input() {
InputStream in = System.in;
// while(true)
{
System.out.print("请输入:");
try {
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = in.read()) != -1) {
// System.out.println(ch);
if (ch == '\n') {
// System.out.println("ch"+ch);
String temp = sb.toString();
if (temp.compareTo("over") == 0) {
System.out.println("退出");
return;
} else {
System.out.println(temp.toUpperCase());//转为大写字母
sb.delete(0, sb.length());//清空
}
}else{
sb.append((char) ch);
}
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}