快速业务通道

浅谈Java的输入输出流 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
");       }     } }

浅谈Java的输入输出流(3)

时间:2010-12-13

对于上面的例子,需要说明的有以下几点:

1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:

BufferedReader (Reader in) BufferedReader (Reader in, int sz)

这里的sz是指定缓冲区的大小。

它的基本方法:

void close () //关闭流       void mark (int readAheadLimit) //标记当前位置       boolean markSupported () //是否支持标记       int read () //继承自Reader的基本方法       int read (char[] cbuf, int off, int len) //继承自Reader的基本方法       String readLine () //读取一行内容并以字符串形式返回       boolean ready () //判断流是否已经做好读入的准备       void reset () //重设到最近的一个标记       long skip (long n) //跳过指定个数的字符读取

2. InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给BufferedReader使用。

3. PrintWriter out1 = new PrintWriter (new BufferedWriter (new FileWriter ("IODemo.out")));

这句话体现了Java输入输出系统的一个特点,为了达到某个目的,需要包装好几层。首先,输出目的地是文件IODemo.out,所以最内层包装的是FileWriter,建立一个输出文件流,接下来,我们希望这个流是缓冲的,所以用BufferedWriter来包装它以达到目的,最后,我们需要格式化输出结果,于是将PrintWriter包在最外层。

Java提供了这样一个功能,将标准的输入输出流转向,也就是说,我们可以将某个其他的流设为标准输入或输出流,看下面这个例子:

import java.io.*;    public class Redirecting {     public static void main (String[] args) throws IOException {         PrintStream console = System.out;         BufferedInputStream in = new BufferedInputStream ( new FileInputStream ( "Redirecting.java"));         PrintStream out = new PrintStream ( new BufferedOutputStream ( new FileOutputStream ("test.out")));         System.setIn (in);         System.setOut (out);    BufferedReader br = new BufferedReader ( new InputStreamReader (System.in));         String s;         while ( (s = br.readLine ()) != null)            System.out.println (s);         out.close ();         System.setOut (console);     } }

浅谈Java的输入输出流(4)

时间:2010-12-13

在这里java.lang.System的静态方法

static void setIn (InputStream in) static void setOut (PrintStream out)

提供了重新定义标准输入输出流的方法,这样做是很方便的,比如一个程序的结果有很多,有时候甚至要翻页显示,这样不便于观看结果,这是你就可以将标准输出流定义为一个文件流,程序运行完之后打开相应的文件观看结果,就直观了许多。

Java流有着另一个重要的用途,那就是利用对象流对对象进行序列化。下面将开始介绍这方面的问题。

在一个程序运行的时候,其中的变量数据是保存在内存中的,一旦程序结束这些数据将不会被保存,一种解决的办法是将数据写入文件,而Java中提供了一种机制,它可以将程序中的对象写入文件,之后再从文件中把对象读出来重新建立。这就是所谓的对象序列化Java中引入它主要是为了RMI (Remote Method Invocation)和Java Bean所

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号