文件 I/O字符流

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.io.Reader;
public class test_main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		File sourceFile = new File("a.txt");
		File targetFile = new File("b.txt");
		System.out.println(sourceFile.getAbsolutePath());
		System.out.println(targetFile.getAbsolutePath());
		char c[] = new char[19];
		try {
			Writer out = new FileWriter(targetFile,true);
			/*Writer用于写入字符流的抽象类。
			FileWriter用于写入字符流。
			第一个参数给File对象构造一个FileWriter对象。
			第二个参数为ture,则字节将写入文件的末尾而不是开头。*/
			Reader in = new FileReader(sourceFile);
			/*Reader用于读取字符流的抽象类
			FileReader用于读取字符流。
			创建一个新的FileReader,给予File读取。*/
			int n = -1;
			while((n=in.read(c))!=-1) {
			/*read将字符读入数组。该方法将阻塞,直到某些输入可用,发生
			I/O错误或达到流的结尾。
			cbuf-目的缓冲区。
			读取的字符数,如果已经达到流的结尾,则为-1.*/
				out.write(c,0,n);
			}
			out.flush();
			/*刷新流。如果流已经从缓冲区中的各种write()方法保存
			了任何字符,将他们立即写入到其预期目的地。如果该目的地
			是另一个字符或字节流,将其刷新。
			一个flush()调用将率新Writers和OutputStreams链中
			所有缓冲区。*/
			in.close();
			out.close();
		}
		catch(IOException e) {
			System.out.println("Error "+e);
		}
	}

}

原文地址:https://www.cnblogs.com/WALLACE-S-BOOK/p/9732326.html