目标 运用File类进行文件操作 理解流,标准输入/输出流的概念 运用FileInputStream和FileOutputStream类读写文本文件 运用BufferedReader和BufferedWriter类读写文本文件 运用DataInputStream和DataOutputStream类 读写二进制文件
文件 文件可认为是相关记录或放在一起的数据的集合 JAVA程序通过java.io.File 类访问文件属性 File对象即可表示文件、也可表示目录,可用File对象来对文件或目录进行操作 注意:File类能对文件或目录的属性进行操作,但File类不能访问文件的内容,也就是说不能用File类来往文件里读写数据
流-1 流是指一连串流动的字符,是以先进先出方式发送信息的通道 数据从源数据源输入到内存称输入流(InputStream); 数据从内存输出到 目标数据源称输出流(OutputStream)
流 -2 Java流的分类 字节流继承InputStream 类和 OutputStream类 字节流 8 位 适合处理二进制文件, 也可处理文本文件 字节流继承InputStream 类和 OutputStream类 字符流 16 位 Unicode 适合处理字符串和文本 字符流继承Reader类和 Writer类
文件的读写 文本文件的读写 二进制文件的读写 用FileInputStream读文本文件 用FileOutputStream写文本文件 用BufferedReader读文本文件 用BufferedWriter写文本文件 二进制文件的读写 用DataInputStream读二进制文件 用DataOutputStream写二进制文件
用FileInputStream 读文本文件-1 引入相关的类 import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; 构造一个文件输入流对象 InputStream fileobject = new FileInputStream(“text.txt”);
用FileInputStream 读文本文件-2 利用文件输入流类的方法读取文本文件的数据 fileobject.available(); //可读取的字节数 fileobject.read(); //读取文件的数据 关闭文件输入流对象 fileobject.close();
用FileOutputStream 写文本文件-1 引入相关的类 import java.io.IOException; import java.io.OutputStream; import java.io.FileOutputStream; 构造一个文件输出流对象 OutputStream fos = new FileOutputStream("Text.txt");
用FileOutputStream 写文本文件-2 利用文件输出流的方法写文本文件 String str ="好好学习Java"; byte[] words = str.getBytes(); fos.write(words, 0, words.length); 关闭文件输出流 fos.close();
用BufferedReader 读文本文件 -1 引入相关的类 import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; 构造一个BufferedReader对象 FileReader fr=new FileReader("mytest.txt"); BufferedReader br=new BufferedReader(fr);
用BufferedReader 读文本文件 -2 br.readLine(); //读取一行数据,返回字符串 关闭相关的流对象 br.close(); fr.close();
用BufferedWriter 写文本文件 -1 引入相关的类 import java.io.FileWriter ; import java.io.BufferedWriter ; import java.io.IOException; 构造一个BufferedWriter对象 FileWriter fw=new FileWriter("mytest.txt"); BufferedWriter bw=new BufferedWriter(fw);
用BufferedWriter 写文本文件 -2 bw.write (“hello”); 相关流对象的清空和关闭 bw.flush(); fw.close();
用BufferedWriter从控制台输入数据 InputStreamReader input = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(input); in.readLine();
用DataInputStream 读二进制文件 引入相关的类 import java.io.FileInputStream; import java.io.DataInputStream; 构造一个数据输入流对象 FileInputStream fis = new FileInputStream(“HelloWorld.class”); DataInputStream dis = new DataInputStream(fis); 利用数据输入流类的方法读取二进制文件的数据 dis.readInt(); // 读取出来的是整数 dis.readByte(); // 读取出来的数据是Byte类型 数据输入流的关闭 dis.close (); //关闭数据输入流
用DataOutputStream 写二进制文件 引入相关的类 import java.io. FileOutputStream; import java.io. DataOutputStream; 构造一个数据输出流对象 FileOutputStream outFile = new FileOutputStream("temp.class"); DataOutputStream out = new DataOutputStream(outFile); 利用文件输出流类的方法写二进制文件 out.writeByte(1); //把数据写入二进制文件 数据输出流的关闭 out.close();
总结 File 类用于访问文件系统 流是指一连串流动的字符,是以先进先出方式发送信息的通道 流可以分为输入输出流,也可以分为字节流和字符流 运用FileInputStream和FileOutputStream可以读写文本文件 运用BufferedReader和BufferedWriter也可以读写文本文件,且性能较高 运用DataInputStream和DataOutputStream可以读写二进制文件