java基于eclipse实现文件复制,粘贴,剪切
大家好,我是小鱼儿.yanxiao,非常荣幸各位来到我的博客。最近放寒假了,闲的有点x疼,又回到了学习状态,今天分享一波代码,若是喜欢本篇文章记得三连一波,也欢迎大家发言。废话不多说走起。
前言
文章java代码版本"1.8.0_202"
本篇代码采用java缓存流和字节流
提示:以下是本篇文章正文内容,下面案例可供参考
完整代码:
package chaper13.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* @作者 YanXiaolxy
* @版本 2020.03
* @时间 2021年1月18日 下午10:57:28
*/
public class CopyDemo {
//文件路径
private static final String FilePath1 = "E:/sounds/theSpectre.mp3";
private static final String FilePath2 = "C:/Users/Administrator/Desktop/theSpectre的复制文件.mp3";
public static void main(String[] args) throws IOException {
long time = CopyFileByBufferedStream();
System.out.println("拷贝用时: " + time + "毫秒");
}
/**
* 使用缓存流拷贝文件
* @return 拷贝过程的用时(毫秒)
*/
private static long CopyFileByBufferedStream() {
File file = new File(FilePath1);//要复制的文件
//删除,实现剪切
// if (file.exists()) {
// file.delete(); //立即删除文件或目录
// file.deleteOnExit();//在程序结束的时候将文件删除,进程没有结束时新创建的文件都会被删除
// System.out.println("文件删除成功!");
// }
if (!file.exists()) {
System.out.println("文件不存在!");
return 0;
}
long startTime = System.currentTimeMillis();
InputStream inStream = null;
BufferedInputStream bInStream = null;
OutputStream outStream = null;
BufferedOutputStream bOutStream = null;
try {
inStream = new FileInputStream(file);
bInStream = new BufferedInputStream(inStream);
outStream = new FileOutputStream(FilePath2);
bOutStream = new BufferedOutputStream(outStream);
int i = -1;//读取出的临时变量
while ((i = bInStream.read())!= -1) {
bOutStream.write(i);//注意:读取一个字节,就写入到了缓存中!
}
System.out.println("文件复制成功!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//全部关一下
//close()内部已经自动调用了flush()方法,直接调用close()方法
bOutStream.close();//需要在最后,将缓存中的内容写入到文件中,即清空缓冲区-flush()方法
outStream.close();
bInStream.close();
inStream.close();//怎么打开的就反着关
} catch (IOException e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
return endTime - startTime;
}
}
代码解读:
定义文件复制和粘贴路径(拷贝路径):
private static final String FilePath1 = "E:/sounds/theSpectre.mp3";
private static final String FilePath2 = "C:/Users/Administrator/Desktop/theSpectre的复制文件.mp3";
拷贝计时代码块:
public static void main(String[] args) throws IOException {
long time = CopyFileByBufferedStream();
System.out.println("拷贝用时: " + time + "毫秒");
}
读取判断复制结果:
int i = -1;//读取出的临时变量
while ((i = bInStream.read())!= -1) {
bOutStream.write(i);//注意:读取一个字节,就写入到了缓存中!
}
System.out.println("文件复制成功!");
粘贴并重命名:
outStream = new FileOutputStream(FilePath2);
关闭资源:
bOutStream.close();
outStream.close();
bInStream.close();
inStream.close();
捕获并抛出异常代码块:
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//全部关一下
//close()内部已经自动调用了flush()方法,直接调用close()方法
bOutStream.close();//需要在最后,将缓存中的内容写入到文件中,即清空缓冲区-flush()方法
outStream.close();
bInStream.close();
inStream.close();//怎么打开的就反着关
} catch (IOException e) {
e.printStackTrace();
}
}
剪切代码块:
// if (file.exists()) {
// file.delete(); //立即删除文件或目录
// file.deleteOnExit();//在程序结束的时候将文件删除,进程没有结束时新创建的文件都会被删除
// System.out.println("文件删除成功!");
// }
总结
假期闲的没事干,不如代码撸撸看。
编程知识不是山,屌丝一样可以翻。
尽管代码费脑子,javaC++大补丸。
建筑不定非搬砖,巧夺天工神鲁班。
打扰了,再见。