分别继承于InputStreamReader   OutputStreamWriter

所以:

FileReader:new FileReader(“d:/back/string.txt”) =
                             new InputStreamReader(new FileInputStream(“d:/back/string.txt”));
         FileWriter:new FileWriter(“d:/back/string.txt”) =
                             new OutputStreamWriter(new FileOutputStream(“d:/back/string.txt”));

1.在使用FileReader 对象进行文件输入操作的时,JVM先读取本地文本文,然后将其格式转化为Unicode编码格式进行操作。

再用FileWriter进行文本文件输出时则把Unicode编码格式再转换成本地(本地主机上)的编码格式(如ASCII或者GBK等)。

2.FileReader与FileWriter两个类和FileInputStream和FileOutputStream两个类的操作方法基本相同,只不过前者基于字符,

后者基于字节(byte),若操作的文件不是文本文件,则建议使用FileInputStream和FileOutputStream进行文件的输入输出。

FileReader(File file) 
          在给定从中读取数据的 File 的情况下创建一个新FileReader
FileReader(FileDescriptor fd) 
          在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader
FileReader(String fileName) 
          在给定从中读取数据的文件名的情况下创建一个新FileReader
 void close() 
          关闭该流并释放与之关联的所有资源。
 String getEncoding() 
          返回此流使用的字符编码的名称。
 int read() 
          读取单个字符。返回值为读入字符对应的int值(0~65535)
 int read(char[] cbuf, int offset, int length) 
          将字符读入数组中的某一部分。返回值为读入字符个数
 boolean ready() 
          判断此流是否已经准备好用于读取。返回值为读入字符个数

FileWriter(File file) 
          根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(File file, boolean append) 
          根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(FileDescriptor fd) 
          构造与某个文件描述符相关联的 FileWriter 对象。

FileWriter(String fileName) 
          根据给定的文件名构造一个 FileWriter 对象。

FileWriter(String fileName, boolean append) 
          根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。

 void

close() 
          关闭此流,但要先刷新它。

 void

flush() 
          刷新该流的缓冲。

 String

getEncoding() 
          返回此流使用的字符编码的名称。

 void

write(char[] cbuf, int off, int len) 
          写入字符数组的某一部分。

 void

write(int c) 
          写入单个字符。

 void

write(String str, int off, int len) 
          写入字符串的某一部分。

注:特别注意的是 FileWriter(File file)   file文件原来内容会被清空   如果只是续写  则用FileWriter(File file,Boolean true)

FileReader与FileWriter的更多相关文章

  1. FileReader和FileWriter

    FileReader和FileWriter 使用fileoutputstream类向文件写入数据与使用fileinputstream类从文件中将内容读取出来,存在不足,就是中文占两个字节, 搞不好就会 ...

  2. java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr

    BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWri ...

  3. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  4. mac下CSV文件用FileReader、FileWriter读写乱码

      先说下windows的excel文件搬到mac下打开为什么会显示乱码.    在win下,excel采用GBK编码,1个汉字是存为2个字节,而mac下各种软件广泛默认使用UTF-8编码方式,如在e ...

  5. Java-IO之FileReader和FileWriter

    FileReader是用于读取字符流的类,它继承于InputStreamReader,要读取原始字节流,考虑使用FileInputStream:FileWriter是用于写入字符流的类,继承于Outp ...

  6. [十八]JavaIO之FileReader 和 FileWriter

    简介 FileReader FileWriter 都是提供操作文件的便捷类 这两个类的实现非常的简单 原理 回忆下之前的InputStreamReader和OutputStreamWriter Inp ...

  7. java io系列22之 FileReader和FileWriter

    FileReader 是用于读取字符流的类,它继承于InputStreamReader.要读取原始字节流,请考虑使用 FileInputStream.FileWriter 是用于写入字符流的类,它继承 ...

  8. J04-Java IO流总结四 《 FileReader和FileWriter 》

    FileReader和FileWriter的源码相对简单,下面通过分析它们的源码以更好地进行理解这两个流 1. FileReader FileReader实现了读取底层的字节数据并将其转换为字符数据的 ...

  9. 使用FileReader与FileWriter读写数据

    -------------siwuxie095                         工程名:TestFileRW 包名:com.siwuxie095.filerw 类名:FileReade ...

随机推荐

  1. 第一本C语言笔记(下)

    11. 数组 (1)数组初始化时,如果初始化数字个数超过存储区个数,就忽略多余数字.如果初始化数字个数少于存储区个数,则后面的存储区自动被初始化为0. (2)数组名称可以代表数组里第一个存储区的地址. ...

  2. verilog $fopen 函数的小缺陷

    system task $fopen 的argument 为1.文件名字(可以包含具体的文件路径但是注意用)2.打开方式比如"r"."w"."a&qu ...

  3. Buffered Channels and Worker Pools

    原文链接:https://golangbot.com/buffered-channels-worker-pools/ buffered channels 带有缓冲区的channel 只有在缓冲区满之后 ...

  4. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  5. python爬虫基础17-抓包工具使用

    01 抓包工具原理 HTTP 由于HTTP请求是没有加密的,也没有做任何验证,所以抓包工具直接将请求转发即可. HTTPS 由于HTTPS请求,客户端会使用服务端的证书来加密数据,而且会验证服务端是否 ...

  6. Lecture 3

    surface models 1. The two main methods of creating surface models are interpolation and triangulatio ...

  7. day 37 MySQL行(记录)的详细操作

    MySQL行(记录)的详细操作   阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操 ...

  8. 搜索引擎elasticsearch + kibana + X-pack + IK安装部署

    目录 准备安装环境 配置启动 启动elasticsearch 启动kibana 启用X-pack 安装使用IK 使用示例 官方Clients 准备安装环境 这次我们安装以下软件或插件: elastic ...

  9. 二叉排序树:POJ2418-Hardwood Species(外加字符串处理)

    Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Description Hardwoods are the botanical gr ...

  10. Android开发——Android 6.0权限管理机制详解

    .Android 6.0运行时主动请求权限 3.1  检测和申请权限 下面的例子介绍上面列出的读写SD卡的使用例子,可以使用以下的方式解决: public boolean isGrantExterna ...