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


今天閑來無事,寫了如下程序:

 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文件夾,

並在其中建了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文件夾。

這樣問題就成功解決了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM