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

    这样问题就成功解决了。

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/xhj123/p/6685459.html
Copyright © 2011-2022 走看看