资讯专栏INFORMATION COLUMN

Java IO学习笔记七

jackzou / 3061人阅读

摘要:对的支持是系统的类,其中的方法都是在控制台的输入和输出,但是通过重定向也是可以对文件的输入输出中定义了标准输入标准输出和错误输出流,定义如下标准错误输出流。

System对IO的支持

System是系统的类,其中的方法都是在控制台的输入和输出,但是通过重定向也是可以对文件的输入输出

System中定义了标准输入、标准输出和错误输出流,定义如下:

static PrintStream err “标准”错误输出流。

static InputStream in “标准”输入流。

static PrintStream out “标准”输出流。

从上面的定义可以知道这里的返回值都是字节的输入和输出流,因此可以使用PrintStream接受这个返回值,然后利用其进行输出,同样的输入也是可以这样做,当然对于OutputStreamInputStream也是可以的,因为PrintStream是继承OutputStream

System.out

System.out是一个标准的输出流,可以使用PrintStreamOutputStream接收返回值,然后使用其进行标准的输出,实例如下

        PrintStream printStream=System.out;  //使用PrintStream
        //OutputStream outputStream=System.out;   //使用OutputStream
            String name="陈加兵";
            int age=22;
            printStream.printf("姓名:%s,年龄:%s",name,age);  //使用格式话的输出
            

其实我还是比较用PrintStream进行格式话的输出的

System.out的重定向输出,可以使用这个将指定的内容输出到文件中,实例如下:

    try {
        File file=new File("/tmp"+File.separator+"test"+File.separator+"test.txt");
            System.setOut(new PrintStream(new PrintStream(file)));  //设置重定向的文件
        }catch (IOException e) 
        {
            e.printStackTrace();
        }
        System.out.println("陈加兵的个人博客");//向文件输入内容
System.in

这是一个标准输入流,可以使用InputStream来接受返回值,然后利用其进行输入,实例如下:

 byte[] bytes=new byte[1024];
        InputStream inputStream=System.in;   //使用InputStream来接收这个返回值
        try {
            inputStream.read(bytes);  //读取控制台输入的字符串
        }catch (IOException e)
        {
            e.printStackTrace();
        }
        System.out.println(new String(bytes));  //输出

说实话这种控制台输入的方式不太好,还是使用原来的Scanner比较好

System.in的重定向

        byte[] bytes = new byte[1024];
        File file = new File("/tmp" + File.separator + "test" + File.separator + "test.txt");
        try {
            System.setIn(new FileInputStream(file));  //设置重定向
            System.in.read(bytes);   //读取文件中字节数据

        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(new String(bytes));   //打印出文件中的内容
System.err

这是一个标准错误输出流,在IDEA中输出的内容是红色的,和System.out输出的格式一样,只是颜色不一样,因为这里的重定向不太重要也不太常用,这里就不再详细说了,详情请看帮助文档

System.exit

public static void exit(int status)

终止当前的java虚拟机,参数用作状态码;根据惯例,非 0 的状态码表示异常终止,如System.exit(0)

参考文章

http://www.cnblogs.com/lich/archive/2011/12/11/2284155.html

http://ifeve.com/java-io-system-in-system-out-system-err/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67116.html

相关文章

  • Fabric学习笔记() - fabric-sdk-java End2endIT运行

    摘要:目的因最熟悉故最后还是拿做突破口学习本文只运行功能以后具体在分析运行环境网络远程本地远程下载运行网络核查网络是否启动成功这一步我遇到的问题是未启动成功原因在于中这 目的 因最熟悉java,故最后还是拿java做突破口学习sdk,本文只运行demo,sdk功能以后具体在分析. 运行环境 Fabric网络 远程Centos Fabric-sdk-java 本地MacOs Intellij...

    mzlogin 评论0 收藏0
  • 重学前端学习笔记)--JavaScript对象:面向对象还是基于对象?

    摘要:对象有状态对象具有状态,同一对象可能处于不同状态之下。中对象独有的特色对象具有高度的动态性,这是因为赋予了使用者在运行时为对象添改状态和行为的能力。小结由于的对象设计跟目前主流基于类的面向对象差异非常大,导致有不是面向对象这样的说法。 笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些...

    mayaohua 评论0 收藏0

发表评论

0条评论

jackzou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<