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文件夹。

这样问题就成功解决了。

时间: 2024-08-28 03:38:47

new FileInputStream(file)中file不能为文件夹的相关文章

Android MediaProvider--文件管理:必现,文件管理器中新建几个文件夹,批量删除后,连接电脑查看仍有部分文件夹未删除

问题描述: [测试步骤]:1.进入文件管理器中,新建几个文件夹,然后批量全选这些文件夹--删除: 2.手机连接电脑,在电脑端查看文件显示. [测试结果]:电脑端查看仍有部分文件夹未删除.插拔USB线几次,在电脑端重新查看,仍显示. [预期结果]:电脑端不应显示已删除的文件夹. [复现概率]:100%(若第一次未复现,步骤1.2重新操作即可复现) [备注]:在文件管理中点击"搜索",也能搜索出这些文件夹. 按以下步骤更容易复现 1.添加一个本地文件夹,删除新添加的文件夹 2.再新建另一文

VMware中linux与window文件夹共享

在虚拟机下来实现在windows下共享一个文件夹: (前提已安装完成vmtools:http://blog.csdn.net/pipisorry/article/details/21318931) 打开VMware->工具栏->虚拟机->选择 设置->选项 共享文件夹 点添加,按提示来添加一个windows下的文件夹.在/mnt/hgfs下就是你在windows下共享的文件夹了 不行的话直接将文件(夹)从linux拖曳到windows桌面上(文件夹中不能包含快捷方式) 两台wind

Unity中所有特殊的文件夹

1. 隐藏文件夹以.开头的文件夹会被Unity忽略.在这种文件夹中的资源不会被导入,脚本不会被编译.也不会出现在Project视图中.2. Standard Assets在这个文件夹中的脚本最先被编译.这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass项目中,依语言而定. 参考http://docs.unity3d.com/Documentation/Ma

在项目中使用PHP include文件夹

很多情况,公司有一类型的代码需要统一部署,如: 1.  数据库配置文件 2.  公司统一框架 3.  其他统一程序代码 对这部分代码我们在开发过程中需要统一物理路径.避免在开发.测试.预发布.正式环境不一致,每次同步代码都需要额外修改配置文件.因此可以使用php配置中的include_path目录来配置该部分功能. 配置方法如下: 1.  修改php.ini中 include_path配置: WIN环境:include_path= ".;D:\htdocs\th_include" LI

win10 删除资源管理器中的6个文件夹

细心的朋友会发现,在Win10此电脑(计算机)中,除了我们最熟悉的磁盘外,还新增了视频.图片.文档.下载.音乐.桌面这6个文件夹.不少网友举觉得这6个文件夹其实并没什么用,想要去除删掉.那么Win10怎么去掉文件夹?目前唯一的方法就是通过修改注册表来去掉计算机中的6个文件夹. Win10删除6个文件夹方法1).使用Win+R组合快捷键打开“运行”对话框,然后键入注册表命令 regedit ,回车,打开注册表. 2).打开注册表后,依次展开:HKEY_LOCAL_MACHINE\SOFTWARE\

在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在"D:\java"文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar

C#中FolderBrowserDialog类打开文件夹使用说明

C#中FolderBrowserDialog类打开文件夹使用说明 ??作用:打开文件选择窗口获取文件夹路径. ??导入的命名空间为: System.Windows.Forms; 属性: ??Description:打开文件框的标题. ??ShowNewFolderButton:是否显示新建文件夹按钮. ??SelectedPath:选择的路径. ??RootFolder:表示根目录的位置. folderBrowserDialog1.RootFolder = Environment.Special

Android真机连接Eclipse时,打不开File Explorer下的data文件夹解决方法

    当用真机开发Android时,连接了Eclipse后,默认在File Explorer下是达不开我们手机的data文件夹的,这里打不开是因为权限不足.以下有个小技巧可以解决这问题. 首先,测试机先root,然后在手机上安装上R.E 管理器(或类似软件),再将/data/data及其子文件夹下的访问权限都修改为可读可写可执行即可.这时候再使用eclipse的File Explorer就可以展开了,这时候就可以查看应用下的SQLite数据库了.

perl怎么拷贝一个文件到另一个文件夹中或者怎么拷贝文件夹到另一个文件夹

File::Copy 主要提供了copy和move函数#!/usr/bin/perluse strict; use warnings; use File::Copy; my $filein=$ARGV[0]; my $fileout=$ARGV[1];#copy($file1, $dir1);将文件$file1复制到文件夹$dir1中:copy($filein,$fileout) or die "copy $filein to $fileout failed\n"; #move($fi