java 使用Reader和Writer对文件内容的拷贝

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 使用Reader和Writer对文件内容的拷贝相关的知识,希望对你有一定的参考价值。

package com.hc.fileio;


import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.Reader;

import java.io.Writer;


/**对文件内容的拷贝

 * @author MaskedMen

 *Reader和Writer只能读写字符流

 */

public class ReaderWriter {


public static void main(String[] args) {

ReaderWriter readerWriter = new ReaderWriter();

try {

//fileOutputStream.fileCopy("D:\\hh1.txt", "D:\\hh2.txt", 1024,false);

readerWriter.fileCopy("D:\\hh1.txt", "D:\\hh2.txt", 1024,true);

} catch (IOException e) {

e.printStackTrace();

}

}


/**

* @param orgFile  源文件路径

* @param desFile 目标文件路径

* @param buffLength 缓存区大小

* @param isApend 表示是否将拷贝的内容追加在目标文件的内容的后面

* @throws IOException

*/

public  void fileCopy(String orgFile,String desFile,int buffLength,boolean isApend) throws IOException{

File orgfile = new File(orgFile);

File desfile = new File(desFile);

if(!orgfile.exists()){//若源文件不存在,则返回

return;

}

if(desfile.exists()&&!isApend){//若不追加则将目标文件删除

desfile.delete();

}

desfile.createNewFile();//创建目标文件

Reader reader = new FileReader(orgfile);

Writer writer = new FileWriter(desfile,isApend);//isApend为true时 内容追加在目标文件的内容的后面

char[] buffer = new char[buffLength];

int length=-1;


while((length=reader.read(buffer))!=-1){ //不返回-1则说明有内容,则继续向下读

String strBuffer = new String(buffer,0,length);

writer.write(strBuffer);

}

writer.flush();//关闭之前,必须冲刷,不然无法写入

writer.close();

reader.close();

}

}


本文出自 “MaskedMen” 博客,请务必保留此出处http://maskedmen.blog.51cto.com/8100866/1748422

以上是关于java 使用Reader和Writer对文件内容的拷贝的主要内容,如果未能解决你的问题,请参考以下文章

Java读取文件问题

Java 读写方案

JavaI/O:简单的使用Reader和Writer来操作文件

Java IO 字符流 Writer 和 Reader

Java IO: Reader和Writer

22 Java学习之字符流(Reader和Writer)