JavaSE-22-读取键盘录入,转换流,编码解码,

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();
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值