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. Redhat 安装ftp服务

    介绍: 1 安装ftp服务端及客户端 2 ftp的使用

  2. [.NET] 《Effective C#》快速笔记 - C# 中的动态编程

    <Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...

  3. 企业Centos服务器分区常用方案

    方案一: 一般公司生产环境,数据不是非常重要,集群架构中的一个节点服务器: /boot: 200M swap: 8G内存以下,1.5倍 8G内存以上,设置8G就够了 / : 剩下的所以存储空间 方案二 ...

  4. JS立即执行函数表达式(IIFE)

    原文为 http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife ----------------- ...

  5. BM25和Lucene Default Similarity比较 (原文标题:BM25 vs Lucene Default Similarity)

    原文链接: https://www.elastic.co/blog/found-bm-vs-lucene-default-similarity 原文 By Konrad Beiske 翻译 By 高家 ...

  6. 微信公众号开发《三》微信JS-SDK之地理位置的获取,集成百度地图实现在线地图搜索

    本次讲解微信开发第三篇:获取用户地址位置信息,是非常常用的功能,特别是服务行业公众号,尤为需要该功能,本次讲解的就是如何调用微信JS-SDK接口,获取用户位置信息,并结合百度地铁,实现在线地图搜索,与 ...

  7. 关于TOE(TCP/IP Offload Engine)

    前言 昨天在电脑上抓取的报文,想进行回话,但是发现全部被设备丢弃了,没有debug信息,查看了抓包文件,原来是IP头和TCP.UDP头的检验和全部为0,也就是TOE(TCP/IP Offload En ...

  8. 数塔,杭电oj-2048

    原题地址:http://i.cnblogs.com/EditPosts.aspx?postid=4077291 [Problem Description] 在讲述DP算法的时候,一个经典的例子就是数塔 ...

  9. Python 随机生成有效手机号码及身份证

    中国那么大,人那么多,几乎人手一部手机.手机号码已经作为各大互联网站的注册账户.同样,身份证更是如此.以下是生成有效手机号码和身份证号. 身份证需要下载districtcode.txt这个文件:htt ...

  10. Mac下修改环境变量并保存

    1. 终端执行 touch ~/.bash_profile 2.终端执行 vim ~/.bash_profile 3.点一下向下箭头,点E 进入bash_profile文件 4.点i进入编辑模式,进行 ...