使用字节流读写文件
1.Java 的 I/O 流提供一条通道程序,可以使用这条通道把源中的数据送给目的地。把输
入流的指向称做源,程序从指向源的输入流中读取源中的数据。而输出流的指向是数据
要去的一个目的地,程序通过向输出流中写入数据把信息传递到目的地。
2.FileInputStream(String name);
FileInputStream(File file);
第一个构造方法使用给定的文件名 name 创建一个 FileInputStream 对象,第二个构造
方法使用 File 对象创建 FileInputStream 对象。参数 name 和 file 指定的文件称做输入流的
源,输入流通过调用 read 方法读出源中的数据。
3. FileOutputStream(String name);
FileOutputStream(File file);
第一个构造方法使用给定的文件名 name 创建一个 FileOutputStream 对象。第二个构
造方法使用 File 对象创建 FileOutputStream 对象。参数 name 和 file 指定的文件称做输
出流的目的地,通过向输出流中写入数据把信息传递到目的地。创建输出流对象也能发
生 IOException 异常,必须在 try、catch 块语句中创建输出流对象
注:为了提高读写的效率,FileInputStream 流经常和 BufferedInputStream 流配合使用
FileInputStream in=new FileInputStream( “A.txt”);
BufferedInputStream buffer=new BufferedInputStream(in);
4. 使用字符流读写文件
所有字符输入流类都是 Reader(输入流)抽象类的子类,而所有字符输出流都是
Writer( 输出流) 抽象类的子类
BufferedReader 和 BufferedWriter 类
为了提高读写的效率,FileReader 流经常和 BufferedReader 流配合使用;FileWriter
流经常和 BufferedWriter 流配合 使用。 BufferedReader 流还可以使用 方法 String
readLine() 读取一行;BufferedWriter 流还可以使用 方法 void write(String s,int
off,int length) 将字符串 s 的一部分写入文件,使用 newLine()向文件写入一个行分隔
符。
数据流
DataInputStream 类和 DataOutputStream 类创建的对象被称为数据输入流和数据输
出流,,它们允许程序按着机器无关的风格读取 Java 原始数据。
对象流
ObjectOutputStream 的指向应当是一个输出流对象,因此当准备将一个对象写入到文
件时,首先用 FileOutputStream 创建一个文件输出流,如下列代码所示:
FileOutputStream file_out=new FileOutputStream("tom.txt");
ObjectOutputStream object_out=new ObjectOutputStream(file_out);
同样 ObjectInputStream 的指向应当是一个输入流对象,因此当准备从文件中读入一
个对象到程序中时,首先用 FileInputStream 创建一个文件输入流,如下列代码所示:
FileInputStream file_in=new FileInputStream("tom.txt");
ObjectInputStream object_in=new ObjectInputStream(file_in);
RandomAccessFile 类
RandomAccessFile 流的指向既可以作为源也可以作为目的地,换句话说,当我们想对一个文件进行读写操作时,我们可以创建一个指向该文件的 RandomAccessFile 流即可,这样我们既可以从这个流中读取这个
文件的数据,也通过这个流写入数据给这个文件。
RandomAccessFile 类的两个构造方法:
RandomAccessFile(String name,String mode) :参数 name 用来确定一个文件名,
给出创建的流的源(也是流目的地),参数 mode 取“r”(只读)或“rw”(可读写),决
定创建的流对文件的访问权利。