FileWriter和FileReader

来源:互联网 发布:阿里云api怎么使用 编辑:程序博客网 时间:2024/05/18 02:00
字节流:
OutputStream      InputStream
字符流:
FileReader             FileWriter
BufferedReader    BufferedWriter
 * 将C盘的一个文件复制到D盘
 * 步骤:
 * 1.在盘创建一个文件
 * 2.定义读取流和C盘文件关联
 * 3.通过不断的读写完成复制
 * 4.关闭资源
方法一:读取一个字符,写入一个字符
public static void copy_1() throws Exception{                //创建一个写入流,创建文件DemoCopy.txt                //如果该目录下已有同名文件,将被覆盖FileWriter fw = new FileWriter("DemoCopy.txt");                //创建一个读取流,关联读取的对象文件Demo.txt                //要保证该文件已经存在,如果不存在,会发生FileNotFoundException异常FileReader fr = new FileReader("Demo.txt");int ch =0 ;                //fr.read()返回读取到的字符,若已经读完,则返回-1while( (ch= fr.read())!=-1){                        //读取一个字符写入一个fw.write(ch);}                //刷新流对象中的缓冲中的数据到目的地fw.flush();                //切记要关闭流fw.close();fr.close();} 



方法二:通过字符数组暂存读取到的字符
public static void copy_2(){FileWriter fw = null;FileReader fr = null;try {fw=new FileWriter("Demo_copy2.txt");fr =new FileReader("Demo.txt");//定义一个字符数组暂存读到的字符char[] buf = new char[1024];int len = 0;                        //fr.read()返回读取到字符的长度,若已经读完,则返回-1while((len = fr.read(buf))!=-1){fw.write(buf,0,len);}} catch (IOException e) {throw new RuntimeException("读写失败");}finally{                        //判断对象是否创建成功if(fr!=null)try {fr.close();} catch (IOException e) {e.printStackTrace();}                        //判断对象是否创建成功if(fw!=null)try {fw.close();} catch (IOException e) {    e.printStackTrace();}}}}

原创粉丝点击