new FileInputStream(file)中file不能爲文件夾

今天閒來無事,寫了以下程序: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

相關文章
相關標籤/搜索