常见的文件操作

public class ReadUtil {
   // 读文件
       public String ReadFile(String Path){
              BufferedReader reader = null;
              String laststr = "";
              try{
              FileInputStream fileInputStream = new FileInputStream(Path);
              InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
              reader = new BufferedReader(inputStreamReader);
              String tempString = null;
              while((tempString = reader.readLine()) != null){
              laststr += tempString;
              }
              reader.close();
              }catch(IOException e){
              e.printStackTrace();
              }finally{
              if(reader != null){
              try {
              reader.close();
              } catch (IOException e) {
              e.printStackTrace();
              }
              }
              }
              return laststr;
              //System.out.println(laststr);

              }

      //判断文件夹是否存在

       public boolean JudgePath(String s) throws Exception {
            File file =new File(s);  
            
            //如果文件夹不存在则创建  
            if  (!file .exists()  && !file .isDirectory())    
            {     
                System.out.println(s+" 不存在");
                //file.mkdir();// 目录不存在的情况下,会抛出异常 // 目录已存在创建文件夹
                file.mkdirs();// 目录不存在的情况下,创建目录。 //目录不存在,创建整个目录
                
                return false;
            } else
            {
                System.out.println(s+" 目录存在");
                
                return true;
            }
            
        }
        //复制文件夹
        public  void copyFolderWithSelf(String oldPath, String newPath) {  
            try {  
                URLDecoder.decode(oldPath,"UTF-8");
                //String oldPath = DirectPath(ooldPath);
                new File(newPath).mkdirs(); //如果文件夹不存在 则建立新文件夹  
                File dir = new File(oldPath);  
                // 目标  
                newPath +=  File.separator + dir.getName();  
                File moveDir = new File(newPath);  
                if(dir.isDirectory()){  
                    if (!moveDir.exists()) {  
                        moveDir.mkdirs();  
                    }  
                }  
                String[] file = dir.list();  
                File temp = null;  
                for (int i = 0; i < file.length; i++) {  
                    if (oldPath.endsWith(File.separator)) {  
                        temp = new File(oldPath + file[i]);  
                    } else {  
                        temp = new File(oldPath + File.separator + file[i]);  
                    }  
                    if (temp.isFile()) {  
                        FileInputStream input = new FileInputStream(temp);  
                        FileOutputStream output = new FileOutputStream(newPath +  
                                "/" +  
                                (temp.getName()).toString());  
                        byte[] b = new byte[1024 * 5];  
                        int len;  
                        while ((len = input.read(b)) != -1) {  
                            output.write(b, 0, len);  
                        }  
                        output.flush();  
                        output.close();  
                        input.close();  
                    }  
                    if (temp.isDirectory()) { //如果是子文件夹  
                        copyFolderWithSelf(oldPath + "/" + file[i], newPath);  
                    }  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
        //移动文件夹(剪切)
        public  void MoveFolderAndFileWithSelf(String from, String to) throws Exception {  
            try {  
                
                File dir = new File(from);  
                // 目标  
                to +=  File.separator + dir.getName();  
                File moveDir = new File(to);  
                if(dir.isDirectory()){  
                    if (!moveDir.exists()) {  
                        moveDir.mkdirs();  
                    }  
                }else{  
                    File tofile = new File(to);  
                    dir.renameTo(tofile);  
                    return;  
                }  
                  
                //System.out.println("dir.isDirectory()"+dir.isDirectory());  
                //System.out.println("dir.isFile():"+dir.isFile());  
                  
                // 文件一览  
                File[] files = dir.listFiles();  
                if (files == null)  
                    return;  
      
                // 文件移动  
                for (int i = 0; i < files.length; i++) {  
                    System.out.println("文件名:"+files[i].getName());  
                    if (files[i].isDirectory()) {  
                        MoveFolderAndFileWithSelf(files[i].getPath(), to);  
                        // 成功,删除原文件  
                        files[i].delete();  
                    }  
                    File moveFile = new File(moveDir.getPath() + File.separator + files[i].getName());  
                    // 目标文件夹下存在的话,删除  
                    if (moveFile.exists()) {  
                        moveFile.delete();  
                    }  
                    files[i].renameTo(moveFile);  
                }  
                dir.delete();  
            } catch (Exception e) {  
                throw e;  
            }  
            
            
        }  
         //找下级文件夹
         public  String DirectPath(String path){
                File file = new File(path);
                File[] files = file.listFiles();
                for(File fileIn : files){
                    if(fileIn.isDirectory()){
                        return fileIn.getPath();
                    
                    }
                }
                return null;
                  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值