读书人

java兑现u盘内容的自动复制

发布时间: 2013-03-21 10:08:17 作者: rapoo

java实现u盘内容的自动复制

这个小程序的功能是,检查U盘,并将U盘的内容自动拷贝到系统的某个盘符中。分享给大家,就当作是练习io流的小练习。


这个小程序的实现方法如下:

1、程序运行后隔一断时间就检查系统的盘符有没有增加,通过File.listRoots()可获取系统存在的盘符。

2、如果盘符增加了,遍历这个新增加的盘符,用字节流拷贝文件到指定的路径。


需要注意的是,由于U盘的内容可能很大,所以拷贝的时候最好指定要拷贝的文件类型,如ppt,doc,txt等等。

下面是这个小程序的相关代码:

在CopyThread类中可以指定要复制的文件类型,大家在fileTypes数组中加入相应的文件后缀名即可。如果要复制所有文件,将其设为null就行了。在CopyFileToSysRoot类中可以指定存储的路径,当然,如果愿意的话,你可以将文件上传到网盘,邮箱等等。。。


一、USBMain类,程序入口:

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;//文件复制IOpublic class CopyFileToSysRoot {// 复制文件保存路径private static final String PATH = "D:\\USB";private File file = null;public CopyFileToSysRoot(File file) {this.file = file;}// 复制文件public void doCopy() {BufferedInputStream bis = null;BufferedOutputStream bos = null;try {//创建目录File fPath = new File(getFileParent(file));if (!fPath.exists()) {fPath.mkdirs();}bis = new BufferedInputStream(new FileInputStream(file));bos = new BufferedOutputStream(new FileOutputStream(new File(fPath,file.getName())));byte[] buf = new byte[1024];int len = 0;while ((len = bis.read(buf)) != -1) {bos.write(buf, 0, len);bos.flush();}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {if (bis != null)bis.close();} catch (IOException e) {e.printStackTrace();}try {if (bos != null)bos.close();} catch (IOException e) {e.printStackTrace();}}}// 根据盘符中文件的路径,创建复制文件的文件路径public String getFileParent(File f) {StringBuilder sb = new StringBuilder(f.getParent());int i = sb.indexOf(File.separator);sb.replace(0, i, PATH);return sb.toString();}}


4楼xiaoerlyl昨天 22:48
可以了
Re: java4found昨天 23:48
回复xiaoerlyln别拿来做坏事。。。。
3楼wangqiuyun昨天 22:20
顶一个
2楼xiaoerlyl昨天 20:29
我在eclipse里编译了,没起作用
Re: java4found昨天 22:19
回复xiaoerlyln是我里面的代码有问题吗?
Re: java4found昨天 22:19
回复xiaoerlyln之前出错是什么原因????
1楼zglung昨天 20:12
可以运行,楼主很有创意!

读书人网 >编程

热点推荐