第4章java的io流和异常处理.ppt

第4章java的io流和异常处理

第四章 Java的I/O流和异常处理 学习导读 本章将介绍Java中的几种I/O流方法和应用,以及文件处理、对象序列化和Java中异常的编写和处理。 从输入流读取下一个字节,-1表示输入结束,阻塞方法 abstract int read( ); 从输入流读取一组数据存入缓冲区b中。返回读取的字节个数,-1表示结束 int read( byte b[ ] ); 从输入流读取最多len字节数据存入缓冲区b中,并从数组b的第off个位置开始存放 int read( byte b[ ], int off, int len ); 返回输入流中无需阻塞可直接读取字节个数 int available( ); 从输入流中忽略n和字节的数据,返回实际忽略的字节个数 long skip( long n ); 关闭输入流 close( ); 使用输入流中的标记 void mark( int readlimit); //在输入流中标记当前位置,以后可调用reset方法返回该位置,readlimit设置调用mark方法后可以读取的最大字节数且保持mark标记有效,并非所有流都支持. 重置流的读取位置,回到上次调用mark方法标记的位置 void reset( ); 检测输入流是否支持mark和reset方法 boolean markSuppont( ); 向输出流写入一个字节,写出 字节为整数b的低字节,其高3个字节被忽略 abstract void write( int b ); 把缓冲区b中的全部数据写入输出流 void write( byte b[ ] ); 把缓冲区b中从b[off]开始的len个字节的数据写入输出流 void write( byte b[ ], int off, int len ); 刷新输出流,强制输出所有被缓存的字节 void flush( ); 关闭输出流 void close( ); 在实际应用中,常用InputStream和OutputStream类的引用指向它们的具体实现的子类对象。 InputStream和Reader类为其子类提供了重要的read()方法,OutputStream和Writer类为其子类提供了相应的write()方法。 4.2 字节级输入输出流 管道流 PipedInputStream和PipedOutputStream类 数据流 DataInputStream和DataOutputStream类 文件字节流 FileInputStream和FileOutputStream类 (1)管道流 管道用来把一个程序、线程或代码块的输出连接到另一个程序、线程或代码块的输入 管道输入流作为一个通信管道的接收端,管道输出流作为发送端。 在使用管道之前,管道输出流和管道输入流必须进行连接。 (1)管道流(cont.) 两种建立连接的方法: (1)在构造方法中连接 PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStream(pis); (2)用connect()方法进行连接 PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStream(); pis.connect(pos); FileOutputStream类的构造方法如下: public FileOutputStream(String filename); public FileOutputStream(File file); 这两个类用来进行文件I/O处理,由它们所提供的方法可以打开本地主机上的文件,并进行顺序的读/写。 通过类File对象或者一个表示文件名的字符串可以生成文件输入/输出流,在流对象被生成的同时,文件被打开,然后就可以进行文件读/写。 在生成类FileOutputStream的对象时,如果指定的文件不存在,则创建一个新文件,否则原文件的内容会被新写入的内容覆盖。 在进行文件的读/写操作时,会产生IOException异常,属于非运行时异常,必须捕获或声明抛弃。 例如,为了读取名为mysurf.dat的文件,需建立一个文件输入流对象,代码是: try { FileInputStream fis=new FileInputStream (“mysurf.dat”); }

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档