Java IO笔记(FileReader/FileWriter)
来源:互联网 发布:java se jdk 下载 编辑:程序博客网 时间:2024/05/22 00:14
本篇讲述的java io包中的FileReader/FileWriter。它们的功能与前面讲过的FileInputStream/FileOutputStream基本类似,只是前者是基于字符流后者是基于字节流,它们都能从文件中读取或者写入数据,下面先贴上源码进行简单的分析。
FileReader:
package java.io;public class FileReader extends InputStreamReader { /** * 一个带一个参数的构造方法,传入的参数为一个String类型数据,是想要打开文件的路径名。内部实质是调用InputStreamReader对应的构造函数。 */ public FileReader(String fileName) throws FileNotFoundException { super(new FileInputStream(fileName)); } /** * 一个带一个参数的构造方法,传入的参数为一个File类型数据,为想要打开文件的File对象。内部实质是调用InputStreamReader对应的构造函数。 */ public FileReader(File file) throws FileNotFoundException { super(new FileInputStream(file)); } /** * 一个带一个参数的构造方法,传入的参数为一个FilerDsecriptor对象,为想要打开文件的文件描述符。内部实质是调用InputStreamReader对应的构 * 造函数。 */ public FileReader(FileDescriptor fd) { super(new FileInputStream(fd)); }}FileWriter:
package java.io;public class FileWriter extends OutputStreamWriter { /** * 一个带一个参数的构造方法,传入的参数为一个String类型数据,为想要写入的文件路径名。内部实质是调用OutputStreamWriter对应的构造方法。 */ public FileWriter(String fileName) throws IOException { super(new FileOutputStream(fileName)); } /** * 一个带两个参数的构造方法,第一个参数为一个String类型参数,表示要写入的文件路径名,第二个参数为一个boolean类型数据,表示打开写入文 * 件时是以覆盖的模式向文件中写入数据还是以追加的方式向文件写入文件(true是追加,false为覆盖)。内部实质是调用OutputSteramWriter对应 * 的构造函数。 */ public FileWriter(String fileName, boolean append) throws IOException { super(new FileOutputStream(fileName, append)); } /** * 一个带一个参数的构造方法,传入的参数为要写入文件的File对象。内部实质是调用OuputStreamWriter对应的构造函数。 */ public FileWriter(File file) throws IOException { super(new FileOutputStream(file)); } /** * 一个带两个参数的构造方法,第一个参数为要写入文件的File对象,第二个参数是一个boolean类型数据,表示打开写入文件时是以覆盖的模式向文 * 件中写入数据还是以追加的方式向文件中写入文件(true是追加,false为覆盖)。内部实质是调用OututStreamWriter对应的构造函数。 */ public FileWriter(File file, boolean append) throws IOException { super(new FileOutputStream(file, append)); } /** * 一个带一个参数的构造方法,传入的参数为要打开文件的文件描述符对象。内部实质是调用OutputStream对应的构造函数。 */ public FileWriter(FileDescriptor fd) { super(new FileOutputStream(fd)); }}
通过对源码的简单学习,我们可以看出FileReader和FileWriter中并没有实现一些特殊的读写方法,甚至于它们的源码中只包含了不同的构造方法,这表明了它们的读写方法都是依赖于FileInputStream/FileOutputStream来实现的,FileReader/FileWriter更多的只是起到将字节流转化成字符流的工作。
下面通过一个简单的小例子来展示这两个类的使用方法:
package FileInputOutput;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class FileIOTest1 {public static void main(String[] args) {char[] buffer = new char[1024];try (FileReader fr = new FileReader(new File("./src/file/test.txt"));FileWriter fw = new FileWriter(new File("./src/file/testcopy3.txt"))) {int len;while ((len = fr.read(buffer)) != -1) {fw.write(buffer,0,len);}System.out.println("复制完成");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}从示例代码中可以看出,FileReader/FileWriter跟前面讲的FileInputStream/FilerOutputStream的使用方法基本完全一致,位移的区别就是提供的缓存数组前者是字符数组后者是字节数组。
以上为本篇全部内容。
阅读全文
0 0
- Java笔记 - IO流(FileReader,FileWriter)
- Java IO笔记(FileReader/FileWriter)
- Java IO - FileReader&FileWriter
- Java IO(十四):FileReader 和 FileWriter
- java-17-IO流(FileReader&FileWriter)
- Java IO FileReader和FileWriter
- Java--IO流(FileReader,FileWriter)
- java io 笔记二:FileOutPutStream、FileInPutStream、FileWriter、FileReader类
- IO流学习笔记(一)之FileWriter与FileReader
- Java之IO(二)FileReader、FileWriter、BufferedReader、BufferedWriter
- [Java] IO-01 FileInputStream / FileOutputStream / FileReader / FileWriter
- 黑马程序员 java基础IO FileReader FileWriter
- Java day10 IO文件复制 FileReader,FileWriter
- Java-IO之FileReader和FileWriter
- Java的IO流--FileWriter和FileReader
- IO-FileReader、FileWriter类
- java FileReader与FileWriter 代码笔记
- 字符输入输出流:java.io.FileReader和java.io.FileWriter
- 【MySQL】Linux安装多个MySQL服务器
- Excel中常用公式
- java实现链表各种操作
- 会场安排问题
- 低功耗蓝牙Ble外围设备
- Java IO笔记(FileReader/FileWriter)
- python连接SQL Server
- java 类初始化顺序
- 图片的压缩与二级采样
- rabbitmq遇到的一些坑
- select、poll、epoll之间的区别总结[整理]
- HDU-2546 饭卡 (和放入顺序有关的01背包)
- 关于ThreadLocal深入分析
- matconvnet环境下训练自己的数据集及模型测试-mnist网络结构-cifar10部分数据集