Java IO(十七)FIleReader 和 FileWriter

一、介绍

FIleReader 和 FileWriter 是读写字符文件的便利类,分别继承于 InputStreamReader 和 OutputStreamWriter,同 FileInputStream 和 FileOutputStream 类似。

  • FIleReader:读取字符文件的便利类,继承于InputStreamReader,是用于读取字符流的类。
  • FileWriter:写入字符文件的便利类,继承于OutputStreamReader,是用于写入字符流的类。

注意:

  • FIleReader 和 FileWriter 是读写字符流的类,如果读取字节流,考虑使用 FileInputStream 和 FileOutputStream。
  • FIleReader 和 FileWriter 不能指定编码集(格式),如果需要指定编码集(格式),考虑使用它们的父类 InputStreamReader 和 OutputStreamWriter。

二、构造方法

(一)、FIleReader

(二)、FileWriter

三、常用API

FileReader 和 FileWriter 直接基于 InputStreamReader 和 OutputStreamWriter 实现的,具体 API 可以参考 Java IO(十六)InputStreamReader 和 InputStreamWriter  。

四、实例

public class FileDemo {
private static char[] chs = new char[]
{'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'};
public static void main(String[] args) {
write();
read();
} /**
* FileWriter 测试
*/
public static void write() {
FileWriter out = null;
try {
// 给定文件名,并指定追加模式:true,续写到文件中
out = new FileWriter("file.txt",true);
out.write("字节流转换为字符的案例");// 写入中文字符
out.write("0123456789");// 写入数字并换行
out.write(chs);// 写入字符数组
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (out != null)
out.close();
}catch (Exception e) {
e.printStackTrace();
}
}
} /**
* FileReader 测试
*/
public static void read() {
FileReader in = null;
char[] buff = new char[10];
int len = 0;
try {
in = new FileReader("file.txt");
System.out.println("read : " + (char)in.read());// 读取一个字符
in.skip(5);// 跳过5个字符
len = in.read(buff, 0, 10);// 从0开始读取10个字符缓存到buff中
System.out.println("buff : " + new String(buff,0,len));
// 读取剩余字符
while((len = in.read(buff)) != -1){
System.out.println("str : " + new String(buff,0,len));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (in != null)
in.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
}

最新文章

  1. Linux下因为系统编码问题造成乱码的解决办法
  2. vs2012 检测到有潜在危险的 Request.Form 值
  3. word2vec使用说明补充(google工具包)
  4. Oracle无法启动,ORA-01034、ORA-01078
  5. Struts2 实现分页
  6. oracle中anyData数据类型的使用实例
  7. 解决SVG跨浏览器兼容性问题
  8. E. Mike and Foam(容斥原理)
  9. SQL -- 是否或推断线相交以在其内部的平面
  10. Thrift框架简介
  11. ios开发中全局变量设置和调用方法
  12. 一天搞定CSS:边框border--02
  13. ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
  14. sql server REPLACE 替换文本中的回车和换行符
  15. windows下gitbash中使用zip命令
  16. Windows利用文件夹映射来同步文件
  17. jquery基础学习之样式篇(一)
  18. sprintf()与sscanf()
  19. [net]ftp ssh http telnet https服务及端口
  20. CodeForces - 798D Mike and distribution 想法题,数学证明

热门文章

  1. CRT 连接AWS-EC2
  2. Java——Java代码的执行顺序
  3. Navicat12.1系列安装,破解以及破解navicat报错的解决方案
  4. Java种sleep和wait的区别
  5. Cassandra 简介
  6. javaweb学习之路(1)request
  7. 记一条distinct 语句的优化。
  8. Angular和Ionic的路由跳转
  9. 汉语分词工具包jieba
  10. iperf压测linux网卡带宽