黑马程序员——FileWriter和FileReader的基本用法

时间:2023-01-30 10:38:14

------- android培训java培训、期待与您交流! ----------

   经过几天的彻夜努力,终于学到毕向东java初级教学视频第18天了。这是java基础的第一天,也是讲IO输入输出的第一天。

    IO(input,output)输入输出是人机交互的重要渠道,一个是对计算机进行存(input)操作,一个是对计算机进行取操作(output),从存取操作的对象来看,一共分两个大类,一是对字节进行存取,二是对字符进行存取。由于对字符存取比较直观,在这里就对计算机对字符的存取方法进行分析。     在java.io包里有Writer类和Reader类,分别是写读操作,但它们都是抽象类,不能建立对象,但它们下面分别有两个子类FileWriter和FileReader分别可以对文件进行写操作和读操作。     FileWriter类继承了Writer里几个重要方法,分别是write方法,这是重载方法,里面分别可以放置字符,字符数组,字符串等参数,flush方法是刷新流,close方法是关闭流,但关闭之前要刷新。     FileReader类继承了Reader里几个重要方法,分别是read方法,这也是是个重载方法,可以读单个字符和字符数组,close方法是关闭流。下面用read中参数分别是字符和字符数组两种形式做一个简单的示例:
import java.io.*;

class IoDemo {
public static void main(String[] args) {
FileWriter fw = null;
FileReader fr = null;
try {
fw = new FileWriter("c:\\test.txt");
fr = new FileReader("IoDemo.java");
char[] ch = new char[1024];
int length = 0;
while ((length = fr.read(ch)) != -1) {
fw.write(ch, 0, length);
}
} catch (Exception e) {
System.out.println("读取数据错误");
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
System.out.println(e);
}
}
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
}

}


这是用字符数组对文件进行读写操作。下面是用字符对文件进行读写操作的示例:
import java.io.*;

class IoDemo2 {
public static void main(String[] args) throws IOException {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader("IoDemo2.java");
fw = new FileWriter("test2.txt");
int ch;
while ((ch = fr.read()) != -1) {
fw.write(ch);
fw.flush();
}
} catch (IOException e) {
} finally {
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
}
}
}


编译通过,并运行成功。