`

Java标准I/O输入输出流

    博客分类:
  • Java
阅读更多

Java标准I/O输入输出流


Java遵循标准I/O的模型,提供了Syetem.in,System.out,以及System.err。System.out是一个已经预先处理过的,被包装成PrintStream的对象。和System.out一样,System.err也是一个PrintStream,但是System.in就不对了,它是一个未经处理的InputStream。也就是说,虽然你可以直接往System.out和System.err上写,但是要想读System.in的话,就必须先做处理了,比如想一行一行读取时,需如下包装:BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

将System.out转换成PrintWriter


PrintStream 按照平台的默认字符编码将字符串的字符转换为字节,并完全以 write(int) 方法的方式写入这些字节,但我们可以指定编码方式,它还有一个是否自动刷新的构造参数,其中一构造函数为PrintStream(OutputStream out, boolean autoFlush, String encoding)。
System.out是PrintStream,也就是说它是OutputStream。不过PrintWriter有一个能将OutputStream改造成PrintWriter的构造函数。有了这个构造函数,你就可以随时将System.out转化成PrintWriter了:PrintWriter out = new PrintWriter(System.out, true);

上面提到了PrintWriter / PrintStream,它们以文本形式输出对象、字符串或者数值,提供了各种数据类型的打印方法。PrintWriter被设计用于代替PrintStream,两者的输出功能几乎相同,但是前者更高效。

标准I/O的重定向


Java的System类还提供了几个能让你重定向标准输入,标准输出和标准错误的静态方法:
setIn(InputStream)
setOut(PrintStream)
setErr(PrintStream)

如果程序在短时间内输出了大量的信息,使得翻屏的速度非常快,以致于你都没法读了,这时对输出进行重定向就会显得非常有用了。对于那些要重复测试用户输入的命令行程序来说,对输入进行重定向也是非常重要的。

标准输出和标准出错区别


标准输出往往是带缓存的,而标准出错没有缓存(默认设置,可以改)。所以如果你用标准出错打印出来的东西可以马上显示在屏幕,而标准输出打印出来的东西可能要再积累几个字符才能一起打印出来。如果你在应用中混用标准输出和标准出错就可能看到这个问题。因此,System.err打出来的信息常常会跑到System.out信息的前面去。另外在eclipse打印时标准错误流会以红色字符打印。

分享到:
评论

相关推荐

    java.I.O输入输出流教程

    java.I.O输入输出流教程,简单易懂。

    Java I/O 标准输入输出流System.in

    NULL 博文链接:https://zhycaf.iteye.com/blog/981767

    Java I/O 第二版

    OReilly.Java.I.O.2nd.Edition.May.2006 Java的io包主要包括: 1. 两种流:字节流(byte Stream)和字符流(character stream),这两种流不存在所谓的谁代替谁、谁比谁高级之说,它们互为补充,只是侧重点不同...

    Java I/O流通讯录

    使用Java编写的一个可使用I/O读写文件的通讯录,具体可实现添加联系人、删除联系人、修改联系人、查看联系人等,无前端页面控制台输入输出 学习JavaI/O流的可下载学习

    Java I/O编程 java

    数据流的概念及输入输出方法 字节流和字符流 文件、文件流 随机访问文件 过滤流 管道流 对象流 数据流小结

    java i/0习题

    java i/o练习题,附带答案 主要练习输入,输出流...

    Java文件输入输出(I/O)流.pdf

    Java文件输入输出(I/O)流.pdf 学习资料 复习资料 教学资源

    java 输入输出流 实例

    java 输入输出流 I/O 实例 从文件读取信息,将处理过的信息写回文档。

    Java输入与输出(I、O).

    Java输入输出合集。 File类 RandomAccessFile类 Scanner类 字节流:IputStream类 等等等等

    javaI/O示例---简易聊天程序代码

    一个java输入输出流的小例子,适合初学者

    Java I/O输入输出流详解

     ASCII:美国标准信息交换码,用一个字节的7位可以表示一个字符  ISO8859-1:拉丁码表,西欧标准字符集,用一个字节的8位表示  GB2312:中文编码表,用两个字节来表示中文编码  GBK:中文编码表的升级,融合...

    Java中I/O流对文件进行复制粘贴及可能会出现的问题

    需求:将E:\电脑桌面壁纸\MisakaMikoto.jpg图片文件复制到D:\某科学的超电磁炮 目录下 public class Test { public static void main(String[] args) ... //创建字节输出流对象,关联目的地文件路径 FileOutputSt

    跟汤老师学Java(第15季):I/O输入输出流

     输入流、输出流  字节流、字符流  节点流、包装流 4.字节流  InputStream:FileInputStream、ByteArrayInputStream、ObjectInputStream  OutputStream:FileOutputStream、ByteArrayOutputStream、...

    java输入输出流 流式输入与输出

    要串行化一个对象,必须与一定的对象输入/输出流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。 java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可...

    java输入输出流,电子课件

    大多数应用程序都需要与外部设备进行数据交换,最常见的外部设备包含磁盘,网络,键盘和显示器等。I/O就是指应用程序对这些设备的数据输入和输出。

    java输入输出流和反射

    自己总结的java中I/O流和反射总结,有不当之处,望请提出宝贵意见,谢谢!

    《Java程序设计》输入输出流.ppt

    本资源详细的讲解了java程序设计中输入输出流的知识,包括输入输出基类,File I/O,数据输入输出流,随机存取文件,文件的其它操作,java 中的unicode等.值得大家分享.

    Demo(数据输出输入流).java

    java由数据流处理输入/输出(I/O)模式,其中,输入流是指打开一个从某数据源到程序的流,并从这个流中读取数据;输出流是为了将程序中的数据传输到某个目的地,在传输过程中,需要将数据写入这个流中。

    JAVA_NIO.zip_jdk

    I/O流或者输入/输出流指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。新的输入/ 输出(NIO)库是在JDK 1.4中引入的。NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的、面向块 的I/O。...

    Java I/O底层是如何工作的?

     面向流的I/O  缓存处理和内核vs用户空间  缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。通常,进程执行操作系统的I/O请求包括...

Global site tag (gtag.js) - Google Analytics