java文件的读取、粘贴、移动等

来源:互联网 发布:网站美工设计教程 编辑:程序博客网 时间:2024/06/05 18:41

在java中文件的操作 主要是读取 写入 创建 和删除这些基本的操作,复制、移动、都是基于这些基本操作上面的流(io)操作;这里简单的说明下这几个基本操作,然后再以代码示例;

  • 复制
    复制是通过被复制路径和复制路径才读取和写入相同的文件,涉及到几个需要注意的是:
    复制路径是否存在,复制的是文件还是文件夹,复制的是空文件夹还是非空,这些在我们做运算处理时一定要注意,否则会复制失败;
    //下面是一个文件的复制,只需要对内容进行读取和写入;
   public   void  copyfile(String oldfile,String newfolder){         File  fileold=new File(oldfile);         if(fileold.exists()){             System.out.println("文件存在继续操作");             try {                InputStream   is=new FileInputStream(fileold);//读取源文件                FileOutputStream os=new FileOutputStream(newfolder);                byte[]bu=new byte[1022];//每次读取大小                    int  lenth=0;                 try {                    while ((lenth=is.read(bu))!=-1) {                        os.write(bu);                    }                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            } catch (FileNotFoundException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }         }    }

关于文件夹的复制就相对麻烦一些,同样会给出两个相同的文件夹的,不同的是还要对文件夹下的文件进行判断处理,关于这一点和文件夹的删除很相似,所以给出大家文件夹的删除,大家自行拓展;

  • 文件夹的删除
    文件夹的删除,java中只能对空文件夹和文件进行删除,所以对于包含了的文件夹,以及子文件夹下面还有文件夹等各种复杂情况,听起来很想循环的感觉有木有,单不推荐去使用for 很复杂,我们这里使用递归;如果对递归的不了解的,可以自己各种百度,我这里就简单给你们说下递归是怎么使用的 很简单也很容易理解:
    递归就是一个对方法的自身反复调用,在删除中我们结合if来判断是否再次进行调用,如何对方法自身反复调用下面给大家看一个例子,大家就明白了:
  private int recursion() {        return recursion();    }

这就是一个基本的递归调用,返回类型可以是什么都可以,通常是基本类型吧, 参数类型我图简单,也没用总之基本结果就是这样,别的都不多说了;
下面看删除文件夹的代码:

 public  void  deletefolder(String pathandname){           File file=new File(pathandname);           if(file.exists()){//不知道里面装的是什么 比如说有文件   文件夹  等             //进型判定               if(file.isDirectory()){//是否有下级属性                    String []filename_list=file.list();//打包的是文件的名称                   System.out.println("改文件下含有文件列表为:"+filename_list.toString());                   //   我们还需要做的是判断这里面的每个文件下面是否还有文件,文件等                    //这里就需要递归了                   //先删除了空文件和文件                  File   infile=null;                    for (int i = 0; i < filename_list.length; i++) {                       //                            if(pathandname.endsWith(File.separator)){                                infile=new File(pathandname+filename_list[i]);                            }else {                                   infile=new File(pathandname+File.separator+filename_list[i]);                            }                            if(infile.isFile()){                                //是文件直接删除                                System.out.println("删除了文件"+pathandname+File.separator+filename_list[i]);                                infile.delete();                            }                            if(infile.isDirectory()){//表示的是是否有下级 也就是是否是文件夹                                deletefolder(pathandname+File.separator+filename_list[i]);                                infile.delete();                                System.out.println("删除了文件夹"+pathandname+File.separator+filename_list[i]);                            }                }               }else {                file.delete();                System.out.println("删除了文件夹"+pathandname);            }           }    }

关于文件的删除直接调用delete()就可以了 就不做说明了;

  • 文件夹的创建
    这个简单说明就可以了 通常文件夹的创建要结合该文件夹是否存在 否则文件夹会创建失败,希望大家能够保持逻辑的完整性;
public  void newfolder(String path) {        File file=new File(path);        if(!file.exists()){            boolean f=file.mkdirs();            if(f){                System.out.println("创建文件目录成功!"+file.toString());            }else {                System.out.println("创建文件目录失败!"+file.toString());            }        }else {        System.out.println("文件路径已经存在,请重新创建一个文件"+path);        }    }
  • 文件的创建和写入:
    直接给他家看代码了,不做过多解释;
public void  newfile(String  pathandname,String filecontext){        File  file=new File(pathandname);        if(!file.exists()){            try {                boolean f=file.createNewFile();                if(f){                    System.out.println("创建文件成功!"+file.toString());                }else {                    System.out.println("创建文件失败!"+file.toString());                }            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }//            try {                FileWriter writer=new FileWriter(file);//                PrintWriter   pw=new PrintWriter(writer);                writer.write(filecontext);                pw.close();                writer.close();//关闭输入            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }else {            System.out.println("文件已经存在,请重新命名文件"+pathandname);        }    }
原创粉丝点击