System对IO的支持

  • System是系统的类,其中的方法都是在控制台的输入和输出,但是通过重定向也是可以对文件的输入输出
  • System中定义了标准输入、标准输出和错误输出流,定义如下:
  1. static PrintStream err “标准”错误输出流。
  2. static InputStream in “标准”输入流。
  3. 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)

参考文章

Java IO学习笔记七的更多相关文章

  1. Java IO学习笔记七:多路复用从单线程到多线程

    作者:Grey 原文地址:Java IO学习笔记七:多路复用从单线程到多线程 在前面提到的多路复用的服务端代码中, 我们在处理读数据的同时,也处理了写事件: public void readHandl ...

  2. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  3. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  4. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  5. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  6. Java IO学习笔记一

    Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档 构造函数 File(File pare ...

  7. Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

    作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...

  8. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

  9. Java IO学习笔记三:MMAP与RandomAccessFile

    作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...

随机推荐

  1. Play学习 - 体验网页模板

    在经过无数个尝试后,最终用sbt把play所依赖的所有包都下载下来了,现在可以非常快速编译运行了.今天体验了下网页模板,觉得非常不错,在这里做个简单的介绍. 原文说明: A Play Scala te ...

  2. C++接口的定义与实现的详细过程

    1.接口的定义与实现 所谓的接口,即将内部实现细节封装起来,外部用户用过预留的接口可以使用接口的功能而不需要知晓内部具体细节.C++中,通过类实现面向对象的编程,而在基类中只给出纯虚函数的声明,然后在 ...

  3. 工具类总结---(六)---之http及https请求

    下面使用的是HttpURLConnection进行的网络链接,并对https进行了忽略证书. 在这个utils里面,也使用到前面几个utils,比如下载文件的方法,就使用到了Fileutils pac ...

  4. Maven学习-优化和重构POM

    在一个复杂的项目中,项目的各个模块存在各种相互依赖关系.优化一个多模块项目的POM最好通过几步来做.总的来说,我们总是寻找一个POM中的重复或者多个兄弟POM中的重复.在多模块项目中依赖重复的模式主要 ...

  5. hexo从零开始到搭建完整

    前言 其实平时自己写的文章并不多,偶尔看到一些东西会做点笔记,但是每次写的东西都会到处放,不好找,所以才想着自己搭建一个人博客网站,现在大家用hexo比较多,也比较方便,并且能使用的主题也很多,所以小 ...

  6. Python正则表达式完全指南(上)

    正则表达式处理文本有如疾风扫秋叶,绝大部分编程语言都内置支持正则表达式,它应用在诸如表单验证.文本提取.替换等场景.爬虫系统更是离不开正则表达式,用好正则表达式往往能收到事半功倍的效果. 介绍正则表达 ...

  7. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...

  8. 使用wamp扩展php时出现服务未启动的解决方法

    今天在使用wamp扩展php的插件时,出现了如下图所示的错误提示 网上查了查,都说是端口原因,修改Apache的 80端口,但是并没有解决问题. 最后我终于找到了解决方法,步骤很简单,如下: 首先,在 ...

  9. 点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...

  10. Java内存数据模型

    本篇文章带来的是对Java内存数据模型的介绍,这对于我们深入理解Jvm虚拟机工作的原理和Java内存的划分大有裨益,好了,为了让我们理解的更为深刻,我们将会加入图片辅助的方法去理解. 本篇博文的目录: ...