第一种:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;
public class CopyFile{
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件名:");//控制台录入文件绝对路径或相对路径
String s = sc.next();
//String s = "writer.txt";
File file = new File(s);//判断是否有此文件
boolean boo = file.canExecute();
InputStream is = new FileInputStream(s);
if(boo == true){
String str = file.getAbsolutePath().replace("w", "copy_w");
//System.out.println(str);
File copyFile = new File(str);//文件复制
copyFile.createNewFile();
OutputStream os = new FileOutputStream(str);
int n = 0;
while((n = is.read()) != -1){
os.write(n);
}
System.out.println("复制成功");
}
}
}
第二种:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
/**
* 复制图片,因为复制同一个地方所以文件名不同;
*
* @author L
*
*/
public class CopyFileTwo{
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件名");//控制台录入输入文件地址
String s = sc.next();
File file = new File(s);
copyFile(file);//将原有文件传进去
}
public static void copyFile(File file) throws IOException{
/*
* 功能:将形参file传进去,获得一个改完名字的新文件
* 下一步将原有内容复制到新的文件中去
*/
File files = check(file);
if(files != null){
FileInputStream fi = new FileInputStream(file.getAbsoluteFile());
FileOutputStream os = new FileOutputStream(files.getAbsoluteFile());
int n = 0;
while((n = fi.read()) != -1){
os.write(n);
}
fi.close();
os.close();
}
}
public static File check(File file) throws IOException{
/*
* 接受一个文件,判断是否有这个文件,如果有返回一个加copy_前缀的空文件
* 如果没有返回null
*/
System.out.println(file.exists());
if(file.exists()){
String str = file.getParent() + "\\copy_" + file.getName();
File file2 = new File(str);
file2.createNewFile();
return file2;
}
else{
System.out.println("没有这个文件");
return null;
}
}
}