前言:这篇介绍以大家最熟悉的操作文件的字符输入输出流FileWriter,FileReader为例简单介绍字符流的入门使用方式。
原文出处:http://blog.csdn.net/u014158743/article/details/52665409
为使代码清晰,一律用throws先抛出异常。
文件输出流FileWriter
寄新手:向文本文件中写入数据,因为是文本文件,所以使用字符流,又因为是写入,所以使用字符流中的输出流Writer,又因为是文件,所以使用可以操作文件的字符输出流类。下文同,本系列同。
public static void main(String[] args) throws IOException {
//1:创建文件输出流对象和被写入数据的文件相关联
//文件不存在会创建,文件存在会被覆盖
FileWriter fw = new FileWriter("temp.txt"); //入门语:与.java同级目录
//2:使用文件输出流对象向文件中写入数据
//数据没有写入到文件,写入到流内部的的一个数组,这个数组是一个字节数组,因为要查编码表
fw.write("abcdef");
//3:把内部缓冲中的数据写入到文件
//fw.flush();
fw.write("gh");//刷完之后可以继续写
fw.close();//关闭此流,同时会刷新流中的数据
//fw.write("ww");//流已经关闭,不能继续写入了
}
文件的续写
public static void main(String[] args) throws IOException {
// 该平台下分隔符(换行)
final String SEPARATOR = System.getProperty("line.separator");
FileWriter fw = new FileWriter("temp.txt",true);
fw.write("ijklmn");
fw.write(SEPARATOR);
fw.write("hello");
fw.close();
}
文件输入流FileReader
public static void main(String[] args) throws IOException
{
//创建文件读取流的对象和被读取的文件相关联
FileReader fr = new FileReader("temp.txt");//被读取的文件需要事先存在
//1、使用一次读一个字符的功能读取
int num;
while((num = fr.read()) != -1) {
System.out.print((char)num);
}
//2、使用数组读取文件
char[] arr = new char[1024];
int num = 0;
while((num = fr.read(arr)) != -1) {
System.out.print(new String(arr, 0, num));
}
fr.close();
}
复制文件小Demo:
//复制一个文件
import java.io.*;
class Demo {
public static void main(String[] args)throws IOException {
//创建文件读取流和被复制的文件相关联
FileReader fr = new FileReader("temp.txt");
//创建文件输出流和复制的新文件相关联
FileWriter fw = new FileWriter("temp_copy.txt");
char[] arr = new char[1024];
int num;
while((num = fr.read(arr)) != -1) {
fw.write(new String(arr, 0, num));
}
fr.close();
fw.close();
}
}
结束语:到这里,相信大家都会了字符流的基本读写,更详细的用法会在后续的文章更新。各位也可以关注我左上角的新浪微博,更新文章我会第一时间发微博通知大家。下篇文章将介绍字符流的缓冲读取流、写入流,欢迎关注。
本系列开启篇:
http://blog.csdn.net/u014158743/article/details/52664986