package com.cast.io;
import java.io.*;
import java.time.LocalDateTime;
import java.util.Scanner;
/**
* @author Administrator
* @version 1.0
* @description: 简单的文件复制器(EasyFileCopy)
* @date 2021/8/19 16:16
*/
public class EasyCopy {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please write sourceFileName and path,such as C:\\xxx.txt");
String sourceFileName = scanner.nextLine();
System.out.println("Please write targetFileName and path,such as C:\\xxx.txt");
String targetFileName = scanner.nextLine();
//Close scanner
scanner.close();
File file = new File(sourceFileName);
File file2 = new File(targetFileName);
if (file.exists() && file2.exists()) {
copyStart(sourceFileName, targetFileName);
System.out.println("Start Method one");
} else if (file.exists() && file2.exists() == false) {
copyStart2(sourceFileName, targetFileName);
System.out.println("start Method 2");
} else {
System.out.println("没有源文件");
}
}
public static void copyStart2(String sourceSrc, String targetSrc) {
FileOutputStream fos = null;
FileInputStream fis = null;
try {
new File(targetSrc).createNewFile();
} catch (IOException e) {
System.out.println("已经有了");
}
try {
//Source File's path,use FileInputStream,read file in Rom
fis = new FileInputStream(sourceSrc);
//TagerFile's path,use FileOutputStream,write file in Ram
fos = new FileOutputStream(targetSrc);
byte[] bytes = new byte[500];
int num = 0;
while ((num = fis.read(bytes)) != -1) {
fos.write(bytes, 0, num);
}
//打印最后的修改时间
fos.write(("\r\nlastChangeTime" + LocalDateTime.now()).getBytes());
} catch (FileNotFoundException e) {
System.out.println("没能找到这个文件");
} catch (IOException e) {
System.out.println("读写报错");
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void copyStart(String sourceSrc, String targetSrc) {
FileOutputStream fos = null;
FileInputStream fis = null;
try {
//Source File's path,use FileInputStream,read file in Rom
fis = new FileInputStream(sourceSrc);
//TagerFile's path,use FileOutputStream,write file in Ram
fos = new FileOutputStream(targetSrc);
byte[] bytes = new byte[500];
int num = 0;
while ((num = fis.read(bytes)) != -1) {
fos.write(bytes, 0, num);
}
//打印最后的修改时间
fos.write(("\r\nlastChangeTime" + LocalDateTime.now()).getBytes());
} catch (FileNotFoundException e) {
System.out.println("没能找到这个文件");
} catch (IOException e) {
System.out.println("读写报错");
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2021-08-19利用Java编写的一个简单的文件复制器
最新推荐文章于 2025-12-11 08:58:14 发布
这是一个Java程序,实现了从用户输入的源文件路径复制到目标文件路径的功能。如果目标文件已存在,程序会提供两种不同的复制方法。程序首先验证源文件是否存在,然后根据情况调用相应的方法进行文件复制,并在复制完成后更新目标文件的最后修改时间。
923

被折叠的 条评论
为什么被折叠?



