用流实现文件的重命名复制到其他文件夹

来源:互联网 发布:mac锁屏界面英文 编辑:程序博客网 时间:2024/05/16 15:42

在文件服务器中可能会用到文件的重命名,在linux上相对容易但是如果需要程序完成,这时候就要用到流的读取与写出了

假如我在linux上某一个文件夹(/home/li/java)找出所有的以.java结尾的所有文件,例如我想将其重命名为.txt文件,并将其复制到另外一个文件夹中(/home/li/txt)

思路:

      1:找出该文件夹中所有以.java结尾的文件集合

      2:遍历集合将其改名并利用流的读取和写出将其写出另外一个文件夹(/home/li/txt/)

      3:关闭相关的流

代码如下:

public class FileReadWriterToAnotherDir{       public static void main(String[] args){        //创建源文件夹对象         File srcDir = new File("/home/li/java");        //扫描原文件夹的文件找出所有的以.java结尾的文件集合        File[] files = srcDir.listFiles(new FilenameFilter(){             @override              public boolean accept(File dir,String name){                 return name.endwith(".java");                  }             });       File destDir =  new File("/home/li/txt");       if(!destDir.exists()){             //如果不存在此文件夹就创建一个文件夹             destDir.mkdir();             }      for(File f:files){             try{                 FileInputStream fis   = new FileInputStream(f);               String destFilename = f.getName().replaceAll("\\.java$",".jad");                FileOutputStream fos = new FileOutputStream(new File(destDir,destFilename));copy(fis,fos);            }catch(IOExcetption e){                  e.printStackTrace();               }finally{            try{                if(fis != null){                    fis.close;                    fis = null;                }             if(fos != null){                 fos.close;                 fos = null;            }         }catch(IOException e){               System.out.println("fis and fos close error!");         }        }       }     }     public static void copy(FileInputStream fis,FileOutputStream fos){               byte[] buffer = new byte[1024];               fis.read(buffer);               //写出到目标文件               fos.writer(buffer,0,buffer.length);         }}



阅读全文
0 0