java基于eclipse实现文件复制,粘贴,剪切

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++大补丸。
建筑不定非搬砖,巧夺天工神鲁班。

打扰了,再见。

猜你喜欢

转载自blog.csdn.net/yanxiaolxy/article/details/112797949
今日推荐