资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第13章 输入输出流,2,1 File类,File对象既可以表示文件,也可以表示目录。 File类常用的构造方法有: File(String pathname) / pathname可以是目录或文件名 File(String parent, String child) / child可以是目录或文件名,child在parent目录中 File(File f, String child) / f是根据目录创建的File对象,child在f目录中 例如: File f = new File(“H:workspacech13da1.txt“); 也可写成: File f = new File(“H:/workspace/ch13/d/a1.txt“); File f = new File(“H:/workspace/ch13/d/“, “a1.txt“);,3,1 File类,File常用的方法有: String getName( ) /获取文件名或目录名,不包括路径 String getPath( ) /获取路径名,如果是文件包括文件名 String getAbsolutePath( )/获取绝对路径名,如果是文件包括文件名 String getParent( ) /获取上一级路径名 long lastModified( ) /获取文件上次修改的时间 boolean exists( ) /判断文件或目录是否存在 boolean isFile( ) /判断是否为文件 boolean isDirectory( ) /判断是否为目录 boolean delete( ) /删除文件或空目录 boolean mkdir( ) /如果目录不存在则创建,创建成功返回true,4,1 File类,例13-1 创建路径的File对象和文件的File对象,并调用File的方法。 import java.io.File; public class Example13_1 public static void main(String args) File f1 = new File(“.“); /创建当前路径的File对象 System.out.println(“f1是否存在:“ + f1.exists(); System.out.println(“f1是否为目录:“ + f1.isDirectory(); System.out.println(“f1是否为文件:“ + f1.isFile(); System.out.println(“f1的绝对路径:“ + f1.getAbsolutePath(); System.out.println(“f1的路径:“ + f1.getPath(); /创建.class文件的File对象 File f2 = new File(f1, “bin/Example13_1.class“); /用于Eclipse3.3 /File f2 = new File(f1, “Example13_1.class“); /用于DOS命令窗口 System.out.println(“f2是否存在:“ + f1.exists(); System.out.println(“f2是否为文件:“ + f2.isFile(); System.out.println(“f2的上一级路径:“ + f2.getParent(); ,5,13.2 字符流和字节流,6,3 使用字符流读写文件,抽象类Reader提供了读取字符文件的公用方法,常用的有: int read() throws IOException /从输入流中读下一个字符,返回值是Unicode码,到达流尾返回-1 int read(char cbuf) throws IOException /从输入流读字符到数组,返回字符数,到达流尾返回-1 void close() throws IOException /关闭输入流,释放它占用的系统资源 抽象类Writer提供了向字符文件输出的公用方法,常用的有: void write(int c) throws IOException /把指定字符写到输出流,c是Unicode码 void write(char cbuf) throws IOException /把数组cbuf中的字符写入输出流 void write(String str) throws IOException /把字符串写入输出流 void close() throws IOException /关闭输出流,释放它占用的系统资源,7,3 使用字符流读写文件,FilerReader和FileWriter的成员方法都是从其超类继承的 FilerReader的构造方法有: FileReader(String filename) throws FileNotFoundException FileReader(File file) throws FileNotFoundException FileWriter的构造方法有: FileWriter(File file) throws IOException FileWriter(String filename) throws IOException FileWriter(File file, boolean append) throws IOException FileWriter(String filename, boolean append) throws IOException,8,3 使用字符流读写文件,例13-2 使用FileReader对象把Java源文件显示在控制台窗口 例13-3 使用FileWriter在当前目录中创建一个数据文件,并写入九九乘法表,9,3 使用字符流读写文件,BufferedReader和BufferedWriter是缓冲数据流,它们通过减少读写I/O设备的次数加快输入输出的速度 缓冲数据流代表缓冲区,它们不能独立读写数据,必须把其它Reader或Writer对象包装成缓冲流才能执行读写。两者的构造方法有: BufferedReader(Reader in) BufferedReader(Reader in, int size) BufferedWriter(Writer out, int size) BufferedWriter(Writer out),10,3 使用字符流读写文件,BufferedReader除了从超类继承的方法外,还定义了下列方法读取整行数据: String readLine( ) throws IOException /返回读取的整行数据 BufferedWriter除了从超类继承的方法外,还定义了下列方法: void newLine( ) throws IOException /写入换行符 void flush( ) throws IOException /把缓冲区中的数据写入文件 例13-4 使用BufferedWriter和FileWriter向一个数据文件输出100个随机浮点数 例13-5 使用BufferedReader和FileReader从例13-4创建的数据文件中读取数据,并在控制台上显示每个数的平方和开方,11,4 使用字节流读写文件,12,4 使用字节流读写文件,InputStream的常用方法有: int read( ) throws IOException /从输入流读取下一个字节,返回-1表示到达文件结尾 int read(byte buffer ) throws IOException /读字节到数组,返回实际读取的字节数,-1表示结尾 void close( ) throws IOException /关闭字节输入流,释放它占用的系统资源 OutputStream的常用方法有: void write(int b) /将指定的字节写入输出流 void write(byte buffer ) throws IOException /将数组中的字节写入输出流 void close( ) throws IOException /关闭字节输出流,释放它占用的系统资源,13,4 使用字节流读写文件,FileInputStream的构造方法有: FileInputStream(File file) throws FileNotFoundException FileInputStream(String name) throws FileNotFoundException FileOutputStream的构造方法有: FileOutputStream(File file)throws FileNotFoundException FileOutputStream( String name)throws FileNotFoundException FileOutputStream(File file, boolean append)throws FileNotFoundException FileOutputStream( String name, boolean append)throws FileNotFoundException,14,4 使用字节流读写文件,例13-6 用字节输出流向文件写入1100字节值,并用字节输入流从文件中读取这些数据 例13-3 使用FileWriter在当前目录中创建一个数据文件,并写入九九乘法表,15,5 随机读写文件,RandomAccessFile构造方法有: RandomAccessFile(String name, String mode) RandomAccessFile(File file, String mode) RandomAccessFile常用成员方法有: double readDouble( ) /从输入流读取double值 int readInt( ) /从输入流读取int值 String readUTF( ) /从输入流读取一个UTF编码的字符串 void writeDouble(double f ) /向输出流写double值 void writeInt(int i ) /向输出流写int值 void writeUTF(String s ) /向输出流写一个UTF编码的字符串,16,5 随机读写文件,例13-8 以读写方式创建RandomAccessFile对象,写入10个随机数,然后读取文件中的第1个和最后一个的随机数,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号