System类对I/O的支持

学习目标:

学完PrintStream(PrintWriter)类之后会发现里面的方法很熟悉
了解一下System类中对于I/O操作的支持

在System类中为了支持I/O操作,设置了三个常量
在这里插入图片描述

  • err:错误输出
  • in:从标准输入设备输入(键盘)
  • out:输出到标准输出设备(显示器)
  1. 错误输出
    System.err是PrintStream类对象,此对象专门负责进行错误信息的输出操作。
try
{}catch(Exception e)
{
System.err.println(e);
}

和out输出除了颜色之外没有不同,严格来说和out的功能是完全一样的,之所以这样设计,主要的目的是err是不让用户看见的错误,而out是可以让用户看到的信息,但是现在基本没人去分了

  1. 信息输出:System.out
    专门准备的支持屏幕输出信息的操作对象(此对象由系统负责实例化)。那么可以利用System.out实现简单的输出操作:

利用OutputStream实现屏幕输出:

 public static void main(String[] args) throws Exception {//正常工作一定要通过try catch处理
    //同样一个父类会根据实例化子类的不同完成的功能不同
        OutputStream out = System.out;
        out.write("helloworld".getBytes());//屏幕输出

    }

另外,需要结合JDK1.8的函数式的功能接口,可以为消费型函数接口做方法引用:

  public static void main(String[] args) throws Exception {//正常工作一定要通过try catch处理
        Consumer<String> con= System.out ::println;
        con.accept("helloworld");
    }

在Java系统里,out是实例化好的,不需要显示实例化

  1. 系统输入:System.in
    在任何的语言里面都有一种功能:键盘输入的操作。但是Java本身没有提供,但是在System里面有一个in对象
    在这里插入图片描述
    实现键盘的数据输入:
public static void main(String[] args) throws Exception {//正常工作一定要通过try catch处理
        InputStream input=System.in;
        byte data[]=new byte[1024];
        System.out.println("请输入数据:");
        int len = input.read(data);
        System.out.println("输入数据为"+new String(data,0,len));
    }

除了开始的时候初始化InputStream的类不同之外,没有其他的区别!现在已经实现了键盘数据的输入,但是输入的时候开辟了一个数组,那么如果数组的容量小于输入的长度呢?

在这里插入图片描述
如果超过数组长度的数据将不会被保存。实际上,在开发之中,永远不可能知道用户可能输入的数据是多少。所以这种设置输入长度的操作不可能使用。

总结

System类对于I/O的操作实际上并不会过多的使用到,因为唯一可以使用到的只有System.out方法,但是对于此部分你至少应该清楚一点:System.out使用的是PrintStream类对象进行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值