java核心技术之IO流(三)FileReader和FileWriter

最后更新于:2022-04-01 09:58:44

### 简单的说明 从字符类型(char)的文件中读取和写入数据,我们要使用FileWriter和FileReader类来实现。 ### FileWriter和FileReader ### FileWriter类 构造方法: FileWriter(String filename) FileWriter(File file) 关键方法: write(int oneChar) write(char[] buffer, int offset, int count) ### FileReader类 构造方法: FileReader(String filename) FileReader(File file) 关键方法: read() read(char[] buffer, int offset, int count) ### 一个测试的Demo 定义三个方法: (1)testFileReader方法—读取文件内容 FileReader的使用方法: ~~~ //1.创建一个输入字符文件 //2.创建一个FileReader对象 //3.调用read方法,读取内容数据 //4. 关闭对应的流 ~~~ (2)testFileWriter方法—-往文件写内容 FileWriter的使用方法: ~~~ //1.创建一个File文件 //2.创建一个FileWriter对象 //3.调用write方法写入数据 //4.关闭对应的输出流 ~~~ (3)copyByFileReaderFileWriter方法—-复制文件的方法 ~~~ //1.定义输入和输出的文件 //2.定义输入流和输出流的对象 //3.执行复制操作 //4.关闭对应的流,先关输出流,后关输入流 ~~~ ~~~ import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderFileWriter { //同时使用FileReader和FileWriter,实现二个文本文件的复制 public static void copyByFileReaderFileWriter(String src,String des){ //2.定义二个字符流,输入流,输出流 FileReader fr = null; FileWriter fw = null; try { //1.定义二个文件,一个输入,一个输出 File fin = new File(src); File fout = new File(des); fr = new FileReader(fin); fw = new FileWriter(fout); //3.复制操作 char[] c = new char[20]; int len; while((len = fr.read(c)) != -1){ fw.write(c, 0, len); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //4. 关闭对应的流,先关输出流,再关输入流 if(fw != null){ try { fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fr != null){ try { fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //FileWriter使用样例---处理字符 public static void testFileWriter(){ //2.定义一个FileWriter对象 FileWriter fw = null; try { //1.定义一个输出字符文件 File f1 =new File("hello_FileWriter.txt"); fw = new FileWriter(f1); //3.输出操作 String str = "我是中国人,我爱打dota,还爱搞机"; fw.write(str); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }finally{ //4.关闭对应的流 if(fw != null){ try { fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //FileReader使用样例---处理字符 public static void testFileReader(){ //2.定义一个FileReader FileReader fr = null; try { //1.定义一个输入字符文件 File f1 =new File("hello.txt"); fr = new FileReader(f1); //3.读入操作 char[] c = new char[10]; int len; while((len = fr.read(c)) != -1){ System.out.print(new String(c,0,len)); } }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //4.关闭对应的流 if(fr != null){ try { fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } ~~~ 调用: ~~~ //FileReader使用样例---处理字符 FileReaderFileWriter.testFileReader(); //FileWriter使用样例---处理字符 FileReaderFileWriter.testFileWriter(); //同时使用FileReader和FileWriter,实现二个文本文件的复制 FileReaderFileWriter.copyByFileReaderFileWriter("hello_FileWriter.txt", "hello_FileWriter_copy.txt"); ~~~ 参考资料: 1.FileWriter api文档 android_sdk_docs_offline/reference/java/io/FileWriter.html 2.FileReader文档 android_sdk_docs_offline/reference/java/io/FileReader.html 3.FileWriter与FileReader视频 [http://edu.csdn.net/course/detail/805/10966?auto_start=1](http://edu.csdn.net/course/detail/805/10966?auto_start=1)
';