资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java Java程序设计程序设计第七章第七章 文件与数据流文件与数据流山东科技大学信息科学与工程学院2n n输入流和输出流输入流和输出流n随机访问文件n读写器n对象序列化n文件主要内容3输入流和输出流n Java将文件看作字节或字符序列的集合。组成文件的字节序 列或字符序列分别被称为字节流或字符流。n 在Java中,文件的输入输出和标准输入输出(键盘输入、屏幕 打印输出等)是统一处理的,相应的类位于java.io包。n 输入流(java.io.InputStream及其子类)将数据从文件、标准输 入或其他外部输入设别中加载到内存。n 输出流(java.io.OutputStream及其子类)则将内存中的数据保 存到文件或传输到输出设备。4输入流和输出流-InputStream和FileInputStream(1)n java.io.InputStream是抽象类,不能用于实例化对象 。其主要成员方法如下:原型功能描述public abstract int read() throws IOException从输入流读入一个字节,如果到达输入流的末尾(例如 按下Ctrl+Z键),则返回-1。public void close() throws IOException关闭输入流并释放相关资源。InputStream示例:J_Echo.java (P197)示例代码说明: 1)Windows操作系统的流结束标志是Control+C。 2)Sytem.in表示标准输入。System.err表示标准错误输出流。 3)使用InputStream等相关输入输出流类需要引入包语句:import java.io.*。5输入流和输出流-InputStream和FileInputStream(2)n java.io.FileInputStream是java.io.InputStream的子类,其构 造方法如下:原型功能描述public FileInputStream(String name) throws FileNotFoundException从文件名为name的文件创建输入流对象FileInputStream示例: J_EchoFile.java (P199)文件读写的基本步骤: 1)创建文件对应的输入输出流实例对象。 2)对文件进行读写操作。 3)关闭输入输出流对象,释放占用资源。6输入流和输出流-OutputStream和FileOutputStream(1)n java.io.OutputStream是抽象类,用于处理输出流。 其主要成员方法如下:原型功能描述public void write(int b) throws IOException将字节b(整数的低8位)写入到输出流中public void write(byte b) throws IOException将字节数组b写入到输出流中public void flush() throws IOException立即将输出流对应的缓冲区内容写入到文件或其他渠道public void close() throws IOException关闭输入流并释放相关资源。OutputStream示例:J_Write.java (P201)说明:System.out是标准输出流,用于在控制台输出信息。7n java.io.FileOutputStream是java.io.OutputStream的 子类,用于向文件写入数据。其构造方法如下:原型参数描述public FileOutputStream(String name) throws FileNotFoundException参数name指定文件名。注意写入时会直接清空覆盖。public FileOutputStream(String name, boolean append) throws FileNotFoundException参数name指定文件名,参数append用于指定写入的方 式:为true追加到末尾,为false则文件的已有内容会被 新写入的内容覆盖。FileOutputStream示例:J_WriteFile.java (P203)输入流和输出流-OutputStream和FileOutputStream(2)8输入流和输出流-PrintStream(1)n java.io.PrintStream是java.io.OutputStream的子类, 主要特点如下: n 1)包含了直接输出多种类型数据的成员方法;n 2)大部分成员方法不抛异常;n 3)可选择是否自动强制输出(即flush)。PrintStream的构造方法如下:原型参数描述public PrintStream(OutputStream out)参数out指定输出文件,通常为FileOutputStream对象public PrintStream(OutputStream out, boolean autoFlush)参数out指定输出文件,参数autoFlush指定是否自动强 制输出,为true自动强制输出;为false不自动输出public PrintStream(String fileName) throws FileNotFoundException参数fileName指定输出文件9输入流和输出流-PrintStream(2)n java.io.PrintStream的主要成员方法如下:方法描述public void write(int b)将整数b的低8位写入到当前输出流。public PrintStream append(char c)将指定的字符c追加到当前输出流。public void print(boolean c)将c写入到当前输出流。public void print(Object obj)将obj写入到当前输出流。public void println(boolean x)将x和换行符写入到当前输出流。public void println(Object obj)将obj和换行符写入到当前输出流。public PrintStream format(String format, Object.args)将格式化的字符串写入到当前输出流。具体格式参见表 7.1public PrintStream printf(String format, Object.args)将格式化的字符串写入到当前输出流。具体格式参见表 7.1public void flush()强制输出缓冲区内容到输出流。public void close()关闭输出流并释放相关资源。10输入流和输出流-PrintStream(3)n PrintStream示例(J_PrintStream.java, P207):import java.io.PrintStream; import java.io.FileNotFoundException;public class J_PrintStream public static void main(String args )tryPrintStream f = new PrintStream(“out.txt“);f.printf(“%1$d+%2$d=%3$d“, 1, 2, (1+2);f.close( );catch (FileNotFoundException e)System.err.println(“发生异常:“ + e);e.printStackTrace( ); / try-catch结构结束 / 方法main结束 / 类J_PrintStream结束11输入流和输出流-数据的输入流和输出流(1)n 数据的输入流是java.io.DataInputStream,数据的输 出流是java.io.DataOutputStream。n 数据的输入流和输出流处理的是字节流,用于读取 和存储基本数据类型的数据,且每个基本数据类型数 据存储的字节数和它在内存中的占用字节数相同。n DataInputStream和DataOutputStream通常是配套结 合使用。12n 数据的输入流是java.io.DataInputStream的构造方法:n 数据的输出流是java.io.DataOutputStream的构造方法:pulic DataInputStream(InputStream in)pulic DataOutputStream(OutputStream out)FileInputStream f=new FileInputStream(“test.txt”) DataInputStream df=new DataInputStream(f);输入流和输出流-数据的输入流和输出流(2)13n DataOutputStream的主要成员方法如下:方法描述public void writeBoolean(boolean v)将布尔值(1个字节)写入到输出流中public void writeDouble(double v)将双精度数double(8个字节)写入到输出流中public void flush() throws IOException强制输出缓冲区内容到输出流。public void close() throws IOException关闭输出流并释放相关资源。n DataInputStream的主要成员方法如下:方法描述public final boolean readBoolean( ) throws IOException读取一个boolean类型的数据public final double readDouble( ) throws IOException读取一个double类型的数据public void close() throws IOException关闭输出流并释放相关资源。输入流和输出流-数据的输入流和输出流(3)14n DataOutputStream和DataInputStream示例(P209, J_Data.java)import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class J_Data public static void main(String args )tryFileOutputStream fout = new FileOutputStream(“out.txt“);DataOutputStream dfout =new DataOutputStream(fout);int i;for (i=0; i0)public long length()返回文件的长度(单位:字节)publi int read()读入一个字节,并将指针前移一个字节public final byte readByte()读入一个字节,并将指针前移一个字节public final String readLine()读取从当前位置到行结束的字符串,并移动文件指针public void write(int b)写入b的低8位到当前文件中,并移动文件指针public void write(byte b)写入字节数组b到当前文件中,并移动文件指针public void close()关闭随机文件数据流,并释放相关资源说明:上述方法均会throw IOException;如未加说明,后续部分同此。21随机访问文件(3)n 随机访问示例(J_RandomAccessFile.java,P217):import java.io.IOException; import java.io.RandomAccessFi
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号