java系统流是什么?详解

KLQ 2020-08-18 16:48:06 java常见问答 7405

你知道什么是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基础知识,请继续关注本站来进行了解吧。

推荐阅读:

java流的概念,java输入输出流详解