Java Java IO操作.ppt
文本预览下载声明
Java语言与系统设计;第11章 Java IO操作;7.1 输入/输出流概念;以程序为参照,若程序是数据流动的起点,即数据的提供者,这个数据流就是一个“输出数据流”;若程序是数据流动的终点,这个数据流就是一个“输入数据流”。
利用数据流可以简化程序的编写。对于输入数据流(程序是数据流的终点),一旦数据流建立完成后,程序可以不必关心数据流的起点是什么,只要读取自己需要的数据即可;对于输出数据流(程序是数据流的起点),一旦建立起数据流后,程序只负责提供数据,而不必理会数据流的目的地具体是什么(可能是显示器、打印机、文件、网络中的远端客户等)。;*;;*;实例:读入不同类型的数据;7.2 输入/输出的流类;;*;;*;1 字节流InputStream和OutputStream类;int available() :获得从输入流中所能读取的字节的个数
void close() :关闭输入流
int read():读取输入流中的下一个字节,返回该字节的ASCII值,范围在0~255之间;若流结束,则返回-1
int read(byte []a):从输入流中读取字节,并存储到字节数组a中。返回值为实际读取的字节数;若流结束,返回-1
int read(byte []a, int off, int length):从输入流中读取长度为length个字节的数据,并存储于数组a索引off位置开始处,并返回读取的字节数,若流结束,则返回-1
long skip(long a):从当前位置开始,跳过a个字节的数据;OutputStream类中的常用方法 ;7.4 常用的文件处理;1. 使用文件字节流对象读写文件
文件读写字节流类指的是FileInputStream类和FileOutputStream类,它们都重写或实现了其父类InputStream和OutputStream类的一些方法,以实现顺序访问本地文件。它们都是以字节为单位顺序读写一个已存在的文件。;;;若输入流对象创建成功,就相应地打开了对应的文件,接下来就可以从文件中读取信息了。若输入流对象创建失败(如对应的文件不存在时),将会引发异常FileNotFoundException,在程序中需要对其捕获和处理。
(2)从文件中读取信息。一般用read()成员方法进行读取信息操作。
;;;;实例:写文件;;实例:读文件;【例】实现完成文件复制功能的程序。复制的源文件和目标文件的文件名由命令行参数提供。;
try{while((dt=fis.read())!=-1){
fos.write(dt);
}
}catch(IOException e){
System.out.println(文件读写出错);
}finally{
fis.close();
fos.close();
}
}
}
;2. 使用过滤流对象读写文件
文件字节流FileInputStream和FileOutputStream类只能提供纯字节或字节数组的输入/输出操作,如果要进行基于Java基本数据类型(如整数或浮点数等)的输入/输出,则要用到过滤流FilterInputStream类和FilterOutputStream类的各种子类。 ;;;DataInputStream类的构造方法为:
a) DataInputStream(InputStream in):通过输入流对象in创建输入数据文件流对象。
DataOutputStream类的构造方法为:
b) DataOutputStream(OutputStream out):创建输出数据文件流对象,并写数据到OutputStream对象out。
数据文件流对象不仅能读写数据流,还能读写各种Java语言的基本数据类型数据,如int、float、double等。;DataInputStream类和DataOutputStream类常用方法;【例】求100以内的所有素数,并把结果写入D盘的data.dat文件中,最后再以每行10个数的方式显示出data.dat文件内容。 ;try{
InputStream fis = new FileInputStream(d:/data.dat);
DataInputStream dis = new DataInputStream(fis);
for(int i=0; icount; i++){
if(i%10==0)System.out.println();//每行只显示10个数
System.out.printf(%5d, dis.readInt());
}
fis.close();
}c
显示全部