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