java中复制文本文件的方式我总结为14种(按字符读取4中,按字节读

java中复制文件的方式

如果按照字符来读取的话,可以有4种,基本的2种,高效的2种,高效特殊的1种

第0种:

public class CopyFileDemo {public static void main(String[] args) throws Exception{//封裝数据源BufferedReader reader = new BufferedReader(new FileReader("a.txt"));//封装目的地BufferedWriter writer = new BufferedWriter(new FileWriter("b.txt"));//读写数据String line = null;while((line=reader.readLine())!=null){writer.write(line);writer.newLine();//添加新行,不然写到文件里面的内容就没有换行writer.flush();}//释放资源writer.close();writer.close();}}

第一种:加入缓冲区Buffered一次读取一个字符数组

public class CopyFileTest {public static void main(String[] args) throws Exception{//封装数据源BufferedReader reader = new BufferedReader(new FileReader("a.txt"));//封装目的地BufferedWriter writer = new BufferedWriter(new FileWriter("b.txt"));//两种方式其中一种一次读取一个字符数组char[] chs = new char[1024];int len=0;while((len=reader.read(chs))!=-1){writer.write(chs,0,len);writer.flush();//记得刷新}//释放资源writer.close();reader.close();}}第二种:加入缓冲区Buffered一次读取一个字符public class CopyFileTest {public static void main(String[] args) throws Exception{//封装数据源BufferedReader reader = new BufferedReader(new FileReader("a.txt"));//封装目的地BufferedWriter writer = new BufferedWriter(new FileWriter("b.txt"));//一次读取一个字符int ch=0;while((ch=reader.read())!=-1){writer.write(ch);}//释放资源writer.close();reader.close();}}第三种:普通的一次读取一个字符数组public class BufferedCopyFileTest {public static void main(String[] args) throws Exception{//封装数据源FileReader reader = new FileReader("a.txt");//封装目的地FileWriter writer = new FileWriter("b.txt");//一次读取一个字符数组char[] chs = new char[1024];int len=0;while((len=reader.read(chs))!=-1){writer.write(chs,0,len);writer.flush();}writer.close();reader.close();}}第三种:普通的一次读取一个字符public class BufferedCopyFileTest {public static void main(String[] args) throws Exception{//封装数据源FileReader reader = new FileReader("a.txt");//封装目的地FileWriter writer = new FileWriter("b.txt");//一次读取一个字符int ch=0;while((ch=reader.read())!=-1){writer.write(ch);}writer.close();reader.close();}}如果按照字节来读取的话,可以有8中

第一种:把字节流转换为字符流来一次读取一个字符

public class Copy {public static void main(String[] args) throws Exception {//封装数据源(把字节流转换为字符流)InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));//封装目的地(把字节流转换为字符流)OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"));//一次读取一个字符int ch=0;while((ch=isr.read())!=-1){osw.write(ch);}//关闭资源osw.close();isr.close();}}第二种:把字节流转换为字符流来一次读取一个字符数组public class Copy {public static void main(String[] args) throws Exception {//封装数据源(把字节流转换为字符流)InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));//封装目的地(把字节流转换为字符流)OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"));//一次读取一个字符数组char[] chs = new char[1024];int len=0;while((len=isr.read(chs))!=-1){osw.write(chs,0,len);osw.flush();}//关闭资源osw.close();isr.close();}}第三种:高效字节流一次读写一个字节数组: public static void method4(String srcString, String destString)throws IOException {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcString));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destString));byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}bos.close();bis.close();} 第四种:高效字节流一次读取一个字符: public static void method3(String srcString, String destString)throws IOException {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcString));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destString));int by = 0;while ((by = bis.read()) != -1) {bos.write(by);}bos.close();bis.close();} 第五种:普通的字节流对象一次读取一个字节数组public static void method2(String srcString, String destString)throws IOException {FileInputStream fis = new FileInputStream(srcString);FileOutputStream fos = new FileOutputStream(destString);byte[] bys = new byte[1024];int len = 0;while ((len = fis.read(bys)) != -1) {fos.write(bys, 0, len);}fos.close();fis.close();}第六种:普通的字节流对象一次读取一个字节public static void method1(String srcString, String destString)throws IOException {FileInputStream fis = new FileInputStream(srcString);FileOutputStream fos = new FileOutputStream(destString);int by = 0;while ((by = fis.read()) != -1) {fos.write(by);}fos.close();fis.close();} 第七种:BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"))); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b,txt")));然后一次读取一个字符每一发奋努力的背后,必有加倍的赏赐。

java中复制文本文件的方式我总结为14种(按字符读取4中,按字节读

相关文章:

你感兴趣的文章:

标签云: