本文主要是介绍java基础-io-复制文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
以字节为单位复制文件(文件大的复制很慢)
public class CopyFileDemo {
public static void main(String[] args) {
String src = "/Users/xxx/Desktop/study01/src/main/java/iodemo/CopyFileDemo.java";
String deString = "/Users/xxx/Downloads/test/test01.java";
copyFile(src,deString);
}
public static void copyFile(String srcFile,String deFile) {
FileInputStream fis = null;
FileOutputStream fos = null;
try{
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(deFile);
int cc = fis.read();
//如果cc不是-1 把cc保存到目标文件中
while (cc != -1){
fos.write(cc); //把读到的字节cc保存到输出流中
cc=fis.read();
}
}catch (IOException e){
e.printStackTrace();
}finally {
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
以字节数组为单位复制文件(解决文件大的复制很慢的问题)- 不需要关闭流
public class CopyFileDemo {
public static void main(String[] args) {
String src = "/Users/xxx/Desktop/study01/src/main/java/iodemo/CopyFileDemo.java";
String deString = "/Users/xxx/Downloads/test/test03.java";
copyFile1(src, deString);
}
public static void copyFile1(String srcFile, String deFile) {
try (FileInputStream fis1 = new FileInputStream(srcFile);
FileOutputStream fos1 = new FileOutputStream(deFile);) {
byte[] bytes = new byte[1024];
int len = fis1.read(bytes);
while (len != -1) {
fos1.write(bytes, 0, len); //把读到的字节数组保存到输出流中
len = fis1.read(bytes);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这篇关于java基础-io-复制文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!