俩种输入流: BufferedReader类和java.util.Scanner类

BufferedReader类

BufferedReader类属于一个缓冲的输入流,而且是一个字符流的操作对象。在java中对于缓冲流也分为两类:字节缓冲流(BufferedInputStream)、字符缓冲流(BufferedReader)
此类中的属性String readLine() throws IOException
System.in是InputStream类的子类,这个时候与Reader没有关系,要建立起联系就要用到InputStreamReader类

//利用BufferedReader实现键盘输入
public class TestPrintf {
    public static void main(String[] args) throws IOException {
        BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)) ;
        System.out.println("输入信息;");
        String str=buf.readLine();
        System.out.println("输出"+str);
    }
}

java.util.Scanner类

  • 打印流解决的是OutputStream类的缺陷,BufferedReader解决的是InputStream类的缺陷。而Scanner解决的是BufferedReader类的缺陷(替换了BufferedReader类)
  • 使用Scanner本身能够接收的是一个InputStream对象,那么也就意味着可以接收任意输入流,例如:文件输入流 ;Scanner完美的替代了BufferedReader,而且更好的实现了InputStream的操作。
public class TestPrintf {
    public static void main(String[] args) throws IOException {
     Scanner scan = new Scanner(System.in);
        System.out.println("输入数据");
        if (scan.hasNext()) {
            System.out.println("输入内容为" + scan.next());
        }
        scan.close();
    }
}
 Scanner scan = new Scanner(System.in);
        System.out.println("输入数据");
        if (scan.hasNextInt()) {
            System.out.println("输入内容为" + scan.nextInt());
        } else {
            System.out.println("输入的不是数字!");
        }
        scan.close();
    }
} 

不要忘记加包import.util.Scanner;System.in对应的是InputStream
1.取输入字母字符串中的第一个字符

 Scanner scanner = new Scanner(System.in);
 String ac = scanner.nextLine();   
 char cc=ac.charAt(0);
 System.out.println(cc);

2.将数字字符串转换为int、double型

  int s1=Integer.parseInt(ac);
  Double s2=Double.parseDouble(ac);
  System.out.println(s1+","+s2);

除了二进制文件拷贝的处理之外,那么只要是针对程序的信息输出都是用打印流(PrintStream、PrintWriter),信息输出使用Scanner。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值