new FileInputStream(file)中file不能为文件夹
Posted 徐浩进
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件夹。
这样问题就成功解决了。
以上是关于new FileInputStream(file)中file不能为文件夹的主要内容,如果未能解决你的问题,请参考以下文章
java 中 byte[]FileInputStream 互相转换
java 中 byte[]FileInputStream 互相转换
java 小程序误区。。FileInputStream in = null; try in = new FileInputStream(。。。。。为啥这么定