System类对IO的支持
System类与IO有关的3个对象常量
No. | 常量 | 类型 | 描述 |
---|---|---|---|
1 | public static final PrintStream err | 常量 | 显示器上错误显示 |
2 | public static final PrintStream out | 常量 | 显示器上信息输出 |
3 | public static final IntputStream in | 常量 | 键盘数据输入 |
我们最早使用的"System.out.println()"代码从本质上来讲就是调用了System类中的out常量,由于此常量类型为PrintStream,所以可以继续调用PrintStream类中的print()或println()方法,由此证明,Java的任何输出操作实际上都是IO操作。
错误输出:System.err
System.err是PrintStream类对象,此对象专门负责进行错误信息的输出操作。
例:错误输出
package Project.Study.IOSystem;
public class Test1 {
public static void main(String[]args){
try{
Integer.parseInt("abc"); //此处一定会发生异常
}catch (Exception e){
System.err.println(e); //错误输出
}
}
}
//结果:
//java.lang.NumberFormatException: For input string: "abc"
System.err与System.out输出的错误信息是有所不同的,System.err是输出不希望用户看见的的异常,System.out是输出希望用户看得到的信息。
信息输出:System.out
例:利用OutputStream实现屏幕输出
package Project.Study.IOSystem;
import java.io.OutputStream;
public class Test2 {
public static void main(String[]args)throws Exception{
OutputStream outputStream=System.out; //OutputStream就为屏幕输出
outputStream.write("Hello World!!!".getBytes()); //屏幕输出
}
}
//结果:
//Hello World!!!
系统输入:System.in
在Java中并没有可以直接使用键盘输入的操作,而要实现此类操作必须采用IO处理的形式完成,操作的核心就是利用System.in(此为InputStream类实例化对象)完成。
例:实现键盘的数据输入
package Project.Study.IOSystem;
import java.io.InputStream;
public class Test3 {
public static void main(String[]args)throws Exception{
InputStream inputStream = System.in; //System.in为InputStream类实例
byte[]data=new byte[1024]; //开辟空间接收数据
System.out.println("请输入数据:");
int len=inputStream.read(data); //读取数据并返回长度
System.out.println("输入的数据为:"+new String(data,0,len));
}
}
//结果:
//请输入数据:
//Hello World!!!
//输入的数据为:Hello World!!!