你知道什么是java系统流吗?很多人对于什么是java系统流都不是很清楚,那么下面就一起通过简单的文章来了解一下吧。
每一个java程序在运行的时候都会带有一个系统流,系统流对应的类为java.lang.System,Sytem类封装了Java程序运行时的3个系统流,分别通过in、out和err变量来引用。这3个系统流如下:
上面的变量的作用域为public和static,所以,在程序的任何部分都不需引用System对象就能够使用它们。
示例1:
下面的程序演示了怎样使用System.in读取字节数组,使用System.out输出字节数组。
public class Test01 { public static void main(String[] args) { byte[] byteData = new byte[100]; // 声明一个字节数组 System.out.println("请输入英文:"); try { System.in.read(byteData); } catch (IOException e) { e.printStackTrace(); } System.out.println("您输入的内容如下:"); for (int i = 0; i < byteData.length; i++) { System.out.print((char) byteData[i]); } } }
程序运行结果:
请输入英文: abcdefg hijklmn opqrst uvwxyz 您输入的内容如下: abcdefg hijklmn opqrst uvwxyz
System.in是InputStream类的一个对象,因此上述代码的System.in.read()方法实际是访问InputStream类定义的read()方法,这个方法能够从键盘读取一个或多个字符,对于System.out输出流主要用于将指定内容输出到控制台。
System.out和System.error是PrintStream类的对象,因为PrintStream是一个从OutputStream派生的输出流,所以它还执行低级别的write()方法,所以,除了print()和println()方法能够完成控制台输出之外,System.out 还可以调用write()方法实现控制台输出。
write()方法的简单形式如下:
void write(int byteval) throws IOException
这个方法通过byteval参数向文件写入指定的字节,在实际操作当中,print()方法和println()方法比write()方法更常用。
要注意一下了,尽管它们通常用于对控制台进行读取和写入字符,可是这些都是字节流,因为预定义流是没有引入字符流的Java原始规范的一部分,所以它们不是字符流而是字节流,但是在 Java中可以将它们打包到基于字符的流中使用。
以上就是对于java系统流的简单介绍了,希望上面的内容可以对你有帮助,更多java基础知识,请继续关注本站来进行了解吧。
推荐阅读: