Java语言程序设计 清华大学出版社 第8章 输入输出流(1)
第 8 章 数据流的运用 1、 输入输出方法 2、 输入输出流的基类 3、 File I/O 4、 数据输入输出流 5、 随机存取文件 1、 输入输出方法 2、 输入输出流的基类 3、 File I/O 4、 数据输入输出流 5、 随机存取文件 6、 文件的其它操作 7、 小结
一、 输入输出方法 在java中有关流的操作使用 io 包 import java.io.*; 什么是数据流 ? 流是可被顺序访问的无限长的字符序列。 文件,字符串 存储区 文件 文件 终点 起点 程序 程序 网络端点 终端 数据流 网络端点 在java中有关流的操作使用 io 包 import java.io.*;
流的分类 流 字符流 字节流
Java.io中的四个类: 以字符为对象: 输入流: Reader 输出流: Writer 字节流和字符流的比较 以字节为对象: 输入流:InputStream 输出流:OutputStrea 以字符为对象: 输入流: Reader 输出流: Writer 字符流 适用于16位的字符文件 每次读写16位字符 效率较高 字节流—— 适用于各类文件 每次读写8位字节 效率较低
8.2 文件处理 1、File类 2、字符文件: FileReader类、 FileWriter类 3、字节文件: FileInput类、FileOutput类 定义在包java.io中
1、File 类 (1)所有对文件的操作都要使用File类. (2)其构造: File(“文件名”); File(“目录名”,“文件名”); 文件与应用程序不在同一目录
2、操作字符文件的类 FileReader 读取文件; FileWriter 写入文件; BufferedReader 输入到缓冲区。 BufferedWriter 输出到缓冲区。
字符流的读写操作方法 从输入流中按行读取字符的方法: String readLine(); 向输出流写入多个字符的方法: write(String s, int off, int len); 将指定的字符串s从偏移量 off 开始的 len 个字符写入文件输出流。
3、读取文本文件 fr=new FileReader(f); bf=new BufferedReader(fr); File f=new File(“d:\\jtest",“e.txt"); fr=new FileReader(f); bf=new BufferedReader(fr); 建立输入通道 while((s=bf.readLine())!=null) text.append(s+'\n'); 完成读取动作 用循环按行读取
例1:设计一个读取文本文件的应用程序 1、建立一个窗体程序; 2、内置一个文本区; 3、用字符输入流读取文本文件; 4、在文本区中显示读取到的数据。
例1的核心语句: try{ File f=new File("e.txt"); FileReader fr=new FileReader(f); BufferedReader buffin=new BufferedReader(fr); while((s=buffin.readLine())!=null) txt.append(s+'\n'); } catch(IOException e){ ...... }
4、保存文本文件 fw=new FileWriter("b.txt"); bw=new BufferedWriter(fw); 建立输出通道 fw=new FileWriter("b.txt"); bw=new BufferedWriter(fw); 完成写的动作 String str=txt.getText(); bw.write(str,0,str.length()); bw.flush(); 刷新缓冲区 强制写入
例2、在一个文本区中写入字符内容,保存为文件 1、建立一个窗体程序; 2、内置一个文本区; 3、用字符输入流读取文本文件; 4、在文本区中显示读取到的数据。
例2的核心语句 try{ w_file=new FileWriter("b.txt"); buf_writer=new BufferedWriter(w_file); String str=txt.getText(); buf_writer.write(str,0,str.length()); buf_writer.flush(); } catch(IOException ew) { System.out.println(ew); }