zoukankan      html  css  js  c++  java
  • 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:java1.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文件夹。

    这样问题就成功解决了。

  • 相关阅读:
    Angular 双向数据绑定
    Angular 过滤器
    Angular 自定义指令传参
    润滑油 标号
    Oracle concat
    sqlldr load UTF8 error
    linux中shell变量$#,$@,$0,$1,$2的含义解释
    shell 执行结果赋给变量
    linux 如何显示一个文件的某几行(中间几行)
    linux shell date 用当天时间做备份文件名
  • 原文地址:https://www.cnblogs.com/xhj123/p/6685459.html
Copyright © 2011-2022 走看看