编写程序TextFileCopy.java,在测试方法中,将TextFileCopy.java复制为TextFileCopy.java.bak文件; 查看TextFileCopy.java.bak文

本文深入探讨了使用Java进行文件复制的方法,包括字符流和字节流两种方式,前者适用于文本文件,后者则能有效复制音视频等二进制文件。通过具体代码示例,展示了如何利用FileReader、FileWriter、FileInputStream和FileOutputStream实现文件的读取与写入,确保数据完整无损地从源文件转移到目标文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写程序TextFileCopy.java,在测试方法中,将TextFileCopy.java复制为TextFileCopy.java.bak文件; 查看TextFileCopy.java.bak文件的内容,验证复制是否正确。

package com.xatu.IO;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class TextFileCopy {
  public static void main(String[] args) {
	 Reader fr = null;
	 Writer fw = null;
	 try {
		 fr = new FileReader("TextFileCopy.java");
		 
		 fw = new FileWriter("TextFileCopy.java.bak");
		 
		 char[] cbuf = new char[100];
		 int realChars = 0;
		 while ((realChars = fr.read(cbuf)) != -1) {
			fw.write(cbuf, 0, realChars);
		}
		
	} catch (Exception e) {
		e.printStackTrace();	
    }finally {
		if(fr != null)
			try {
			fr.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		if(fw != null)
			try {
				fw.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
	}
  }
}

换成字节流可以复制音视频文件

package com.xatu.IO;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class BinFileCopy {
	public static void main(String[] args) {
		InputStream frs = null;
		OutputStream fws = null;
		try {
			frs = new FileInputStream("01_.avi");
			
			fws = new FileOutputStream("01_副_.avi");
			
			byte[] b = new byte[100];
			int realCharBin = 0;
			while ((realCharBin=frs.read(b)) !=-1) {
				fws.write(b,0, realCharBin);
			}
			
		} catch (Exception e) {
		e.printStackTrace();	
		}finally {
			if(frs != null)try {
				frs.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			if(fws != null)try {
				fws.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
			}
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值