前言
- 通过"Java"简单实现文件的复制操作,快速上手;
实操
- 使用"Windows 11" 系统通过"IntelliJ IDEA" 软件完成;
- 以下方式具体的效率测评在此文件里,需要的请下载;
【方式1】
代码
【类名A】
FileCopying_A
【代码A】
import java.io.*; /** * 方式1:读入一个字节,写出一个字节 * * @author SUNxRUN */ public class FileCopying_A { public static void main(String[] args) throws IOException { // 参数:要复制的文件全限定名 File oldFile = new File("D:\\demo.mp4"); // 参数:复制后的文件全限定名 File newFile = new File("D:\\new_demo.mp4"); FileInputStream fis = new FileInputStream(oldFile); FileOutputStream fos = new FileOutputStream(newFile); // 记录下时间:开始传输时间记录 long start = System.currentTimeMillis(); int d; while ((d = fis.read()) != -1) { fos.write(d); } fos.close(); fis.close(); // 记录下时间:传输完成时间记录 long end = System.currentTimeMillis(); // 传输总用时 long l = end - start; System.out.println("结束!!!用时:" + l); } }
【图片A】
结果
【方式2】
代码
【类名A】
FileCopying_B
【代码A】
import java.io.*; /** * 方式2:利用缓冲字节数组 * * @author SUNxRUN */ public class FileCopying_B { public static void main(String[] args) throws IOException { // 参数:要复制的文件全限定名 File oldFile = new File("D:\\demo.mp4"); // 参数:复制后的文件全限定名 File newFile = new File("D:\\new_demo.mp4"); FileInputStream fis = new FileInputStream(oldFile); FileOutputStream fos = new FileOutputStream(newFile); // 记录下时间:开始传输时间记录 long start = System.currentTimeMillis(); int len; byte[] d = new byte[1024 * 10]; while ((len = fis.read(d)) != -1) { fos.write(d, 0, len); } fos.close(); fis.close(); // 记录下时间:传输完成时间记录 long end = System.currentTimeMillis(); // 传输总用时 long l = end - start; System.out.println("结束!!!用时:" + l); } }
【图片A】
结果
【方式3】
代码
【类名A】
FileCopying_C
【代码A】
import java.io.*; /** * 方式3:利用缓冲区(1) * * @author SUNxRUN */ public class FileCopying_C { public static void main(String[] args) throws IOException { // 参数:要复制的文件全限定名 File oldFile = new File("D:\\demo.mp4"); // 参数:复制后的文件全限定名 File newFile = new File("D:\\new_demo.mp4"); FileInputStream fis = new FileInputStream(oldFile); BufferedInputStream bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream(newFile); BufferedOutputStream bos = new BufferedOutputStream(fos); // 记录下时间:开始传输时间记录 long start = System.currentTimeMillis(); int len; byte[] d = new byte[1024 * 10]; while ((len = bis.read(d)) != -1) { bos.write(d, 0, len); } bos.close(); bis.close(); // 记录下时间:传输完成时间记录 long end = System.currentTimeMillis(); // 传输总用时 long l = end - start; System.out.println("结束!!!用时:" + l); } }
【图片A】
结果
【方式4】
代码
【类名A】
FileCopying_D
【代码A】
import java.io.*; /** * 方式4:利用缓冲区(2) * * @author SUNxRUN */ public class FileCopying_D { public static void main(String[] args) throws IOException { // 参数:要复制的文件全限定名 File oldFile = new File("D:\\demo.mp4"); // 参数:复制后的文件全限定名 File newFile = new File("D:\\new_demo.mp4"); FileInputStream fis = new FileInputStream(oldFile); BufferedInputStream bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream(newFile); BufferedOutputStream bos = new BufferedOutputStream(fos); // 记录下时间:开始传输时间记录 long start = System.currentTimeMillis(); int d; while ((d = bis.read()) != -1) { bos.write(d); } bos.close(); bis.close(); // 记录下时间:传输完成时间记录 long end = System.currentTimeMillis(); // 传输总用时 long l = end - start; System.out.println("结束!!!用时:" + l); } }
【图片A】
结果
后记
- 和此文相关的所有内容,需要的请下载;