今天閒來無事,寫了以下程序:java
1 package com.xhj.test; 2 3 import java.io.File; 4 import java.io.FileFilter; 5 import java.io.FileInputStream; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.InputStream; 9 import java.io.OutputStream; 10 11 /** 12 * 將java文件夾下的.java文件複製到.jad文件夾中,並將.java文件改爲.jad文件 13 * @做者 admin 14 */ 15 public class Java2jad 16 { 17 public static void main(String[] args) throws IOException{ 18 File srcfile = new File("d:/java"); 19 if(srcfile.exists()&&srcfile.isDirectory()){ 20 File[] files = srcfile.listFiles(new FileFilter() 21 { 22 @Override 23 public boolean accept(File pathname) { 24 return pathname.getName().endsWith(".java"); 25 } 26 }); 27 File dirfile = new File("d:/jad"); 28 if(!dirfile.exists()||!dirfile.isDirectory()){ 29 dirfile.mkdir(); 30 } 31 for(File file:files){ 32 FileInputStream fis = new FileInputStream(file); 33 String destfilename = file.getName().replaceAll("\\.java$", "\\.jad"); 34 FileOutputStream fos = new FileOutputStream(new File(dirfile,destfilename)); 35 copyFile(fis,fos); 36 fis.close(); 37 fos.close(); 38 } 39 } 40 } 41 42 public static void copyFile(InputStream is,OutputStream os) throws IOException{ 43 int len = 0; 44 byte[] buffer = new byte[1024]; 45 while((len = is.read(buffer)) != -1){ 46 os.write(buffer,0,len); 47 } 48 } 49 }
功能是將java文件夾下的.java文件複製到jad文件夾中並將文件後綴改成.jad,爲了測試程序,我在d盤下創建了java文件夾,ide
並在其中建了1.java文件夾,2.txt文件和3.java。編譯執行程序,出現以下錯誤:測試
Exception in thread "main" java.io.FileNotFoundException: d:\java\1.java (拒絕訪問。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at com.xhj.test.Java2jad.main(Java2jad.java:32)
上網查了一下,new FileInputStream(file)中的file不能爲文件夾,因此刪除了1.java文件夾。spa
這樣問題就成功解決了。code