二进制文件复制

二进制复制时,我们可以为了使其大小一致。我们应该利用fread的返回值,来传递大小,这是最重要的。

#include <stdio.h>

int main()
{
	FILE *file1 = NULL;
	FILE *file2 = NULL;
	char buf[1024] = {0};
	size_t size;
	fopen_s(&file1,"C:\\Users\\Administrator\\Desktop\\111111111111111111111111.docx","rb");
	fopen_s(&file2,"d:\\333.docx","wb");
	while((size = fread(buf,1,1024,file1)) > 0)
	{
		fwrite(buf,1,size,file2);
		printf("%d\n",size);
	}

	fclose(file1);
	fclose(file2);

	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现将一个目录下的某一二进制文件复制到另一个目录: ```java import java.io.*; public class FileCopy { public static void main(String[] args) throws IOException { String srcDir = "源文件目录路径"; // 源文件目录路径 String destDir = "目标文件目录路径"; // 目标文件目录路径 String fileName = "待复制文件名"; // 待复制文件名 FileInputStream fis = null; FileOutputStream fos = null; try { File srcFile = new File(srcDir, fileName); // 源文件 File destFile = new File(destDir, fileName); // 目标文件 fis = new FileInputStream(srcFile); fos = new FileOutputStream(destFile); byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } } finally { if (fis != null) { fis.close(); } if (fos != null) { fos.close(); } } } } ``` 其中,`srcDir`为源文件目录路径,`destDir`为目标文件目录路径,`fileName`为待复制文件名。通过`FileInputStream`和`FileOutputStream`读取和写入文件,使用`byte`数组作为缓冲区,每次读取和写入一定字节数的数据。 需要注意的是,如果目标文件目录不存在,需要先创建目标文件目录。 ### 回答2: 使用FileInputStream和FileOutputStream实现将一个目录下的某一二进制文件复制到另一个目录,可以按照以下步骤进行操作: 1. 定义源目录和目标目录,使用File类创建源文件和目标文件对象。 例如: File sourceDir = new File("源目录路径"); File targetDir = new File("目标目录路径"); 2. 使用FileInputStream读取源目录下的二进制文件,使用FileOutputStream写入目标目录下的文件。 例如: FileInputStream fis = new FileInputStream(sourceDir); FileOutputStream fos = new FileOutputStream(targetDir); 3. 创建一个缓冲区,用于存储读取的数据。 例如: byte[] buffer = new byte[1024]; int length; 4. 循环读取源文件中的数据,将其写入目标文件中,直到读取完毕。 例如: while((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } 5. 关闭文件输入流和文件输出流。 例如: fis.close(); fos.close(); 完整代码如下所示: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileCopy { public static void main(String[] args) { File sourceDir = new File("源目录路径"); File targetDir = new File("目标目录路径"); try { FileInputStream fis = new FileInputStream(sourceDir); FileOutputStream fos = new FileOutputStream(targetDir); byte[] buffer = new byte[1024]; int length; while((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } fis.close(); fos.close(); System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 注意:在代码中的"源目录路径"和"目标目录路径"处需要替换为实际的目录路径。另外,代码中没有处理异常情况,实际使用时可能需要添加相应的异常处理代码。 ### 回答3: 使用FileInputStream和FileOutputStream实现将一个目录下的某个二进制文件复制到另一个目录的过程如下。首先,我们需要定义源文件和目标文件的路径。 (假设源文件路径为:C:\source\sourceFile.bin,目标文件路径为:C:\destination\destinationFile.bin) 1. 创建一个FileInputStream对象,用于读取源文件二进制数据。 ``` FileInputStream fis = new FileInputStream("C:\\source\\sourceFile.bin"); ``` 2. 创建一个FileOutputStream对象,用于写入目标文件二进制数据。 ``` FileOutputStream fos = new FileOutputStream("C:\\destination\\destinationFile.bin"); ``` 3. 定义一个数组用于存储读取到的二进制数据。 ``` byte[] buffer = new byte[1024]; ``` 4. 使用while循环读取源文件二进制数据,并将其写入目标文件中。 ``` int bytesRead; while ((bytesRead = fis.read(buffer)) != -1) { fos.write(buffer, 0, bytesRead); } ``` 5. 关闭输入输出流对象。 ``` fis.close(); fos.close(); ``` 通过以上步骤,我们可以将源目录下的指定二进制文件复制到另一个目录中。请确保源目录和目标目录存在且可访问,并且源文件存在于源目录中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值