使用java.io.File来操作文件(删除,替换,覆盖,剪切,查看目录下子文件)

  • 用java删除文件夹里的所有文件

     当前部分转载于:	(https://www.cnblogs.com/charleshuang/articles/1427615.html)
     
     	import java.io.File;
     	public class Test
     	{
     	   public static void main(String args[]){
     	       Test t = new Test();
     	       delFolder("c:/bb");
     	       System.out.println("deleted");
     	}
     		//删除指定文件夹下所有文件
     		//param path 文件夹完整绝对路径
     		   public static boolean delAllFile(String path) {
     		       boolean flag = false;
     		       File file = new File(path);
     		       if (!file.exists()) {
     		         return flag;
     		       }
     		       if (!file.isDirectory()) {
     		         return flag;
     		       }
     		       String[] tempList = file.list();
     		       File temp = null;
     		       for (int i = 0; i < tempList.length; i++) {
     		          if (path.endsWith(File.separator)) {
     		             temp = new File(path + tempList[i]);
     		          } else {
     		              temp = new File(path + File.separator + tempList[i]);
     		          }
     		          if (temp.isFile()) {
     		             temp.delete();
     		          }
     		          if (temp.isDirectory()) {
     		             delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件
     		             delFolder(path + "/" + tempList[i]);//再删除空文件夹
     		             flag = true;
     		          }
     		       }
     		       return flag;
     		} 
     		public static void delFolder(String folderPath) {
     		     try {
     		         delAllFile(folderPath); //删除完里面所有内容
     		         String filePath = folderPath;
     		         filePath = filePath.toString();
     		         java.io.File myFilePath = new java.io.File(filePath);
     		         myFilePath.delete(); //删除空文件夹
     		      } catch (Exception e) {
     		        e.printStackTrace(); 
     		      }
     		}
    
  • 判断文件是否存在 -->不存在 -->创建 --> 写入文本

            判断文件是否存在  -->不存在 -->创建
            String filePaths = fileUrl + subject + ".txt";  //路劲
       	
       		File file = new File(filePaths);
       		if (!file.exists()) { // 不存在返回 false
       			// 判断文件是否存在-->不存在-->创建文件
       			file.createNewFile();
       		}
       
       		将文本写入文件中
       	//(filePaths)txt路劲, (bodyText2)要写入的文本
       	boolean writeTxtFile = writeTxtFile(filePaths, bodyText2); 
    
    
       		//写入 
       		//filePath:文件路径,content :内容
       	public static boolean writeTxtFile(String filePath, String content) throws Exception {
       		boolean flag = false;
       		FileOutputStream fileOutputStream = null;
       		File file = new File(filePath);
       		try {
       			fileOutputStream = new FileOutputStream(file);
       			fileOutputStream.write(content.getBytes("GBK"));
       			fileOutputStream.close();
       			flag = true;
       		} catch (Exception e) {
       			System.out.println("文件写入失败!" + e);
       		}
       		return flag;
       	}
    
  • 递归删除文件,及子文件

  •  /**
      * 删除目录(文件夹)以及目录下的文件
      * @param sPath     被删除目录的文件路径
      * @return 目录删除成功返回true,否则返回false
      */
     public boolean deleteDirectory(String sPath) {
     	// 如果sPath不以文件分隔符结尾,自动添加文件分隔符
     	if (!sPath.endsWith(System.getProperty("file.separator"))) {
     		sPath = sPath + System.getProperty("file.separator");
     	}
     	File dirFile = new File(sPath);
     	// 如果dir对应的文件不存在,或者不是一个目录,则退出
     	if (!dirFile.exists() || !dirFile.isDirectory()) {
     		return false;
     	}
     	boolean flag = true;
     	// 删除文件夹下的所有文件(包括子目录)
     	File[] files = dirFile.listFiles();
     	for (int i = 0; i < files.length; i++) {
     		// 删除子文件
     		if (files[i].isFile()) {
     			flag = deleteFile(files[i].getAbsolutePath());
     			if (!flag)
     				break;
     		} // 删除子目录
     		else {
     			flag = deleteDirectory(files[i].getAbsolutePath());
     			if (!flag)
     				break;
     		}
     	}
     	if (!flag)
     		return false;
     	// 删除当前目录
     	if (dirFile.delete()) {
     		return true;
     	} else {
     		return false;
     	}
     }
    
  • 删除单个文件

     	/**
     	 * 删除单个文件
     	 * @param sPath被删除文件的文件名
     	 * @return 单个文件删除成功返回true,否则返回false
     	 */
     	public boolean deleteFile(String sPath) {
     		boolean flag = false;
     		File file = new File(sPath);
     		// 路径为文件且不为空则进行删除
     		if (file.isFile() && file.exists()) {
     			file.delete();
     			flag = true;
     		}
     		return flag;
     	}
    
  • 在本地服务器进行转移切换,转移(类似于剪切无需删除)

     /**
      * 在本地服务器进行转移切换,转移(类似于剪切无需删除)
      * @param fileURL(默认位置)    文件
      * @param directory  要转移的位置
      */
     	public static void mobileFile(String fileURL, String directory) {
     		 String urlFile = "E:\\Email\\";
     		try {
     			// 当前文件的所在位置+当前文件名称
     			// File fDir=new File(System.getProperty("file.separator"));
     			// //System.getProperty("file.separator")表示根目录,比如现在就表示在D盘下。
     			File afile = new File(fileURL);
     			// 当前本地服务器默认位置+将要转移的位置+文件名称
     			File afiles = null;
     			if (directory == null) {
     				afiles = new File(urlFile + System.getProperty("file.separator") + afile.getName());
     			} else {
     				afiles = new File(urlFile + System.getProperty("file.separator") + directory
     						+ System.getProperty("file.separator") + afile.getName());
     			}
     			System.out.println(afiles);
     			// 判断文件是否存在,如果存在删除
     			if (afiles.exists()) {
     				afiles.delete();
     			}
     			// String filePath = fileUrl + sPath
     			// +System.getProperty("file.separator")+ originalFilename;
     			// // 转存文件本地服务器
     			// excelFile.transferTo(new File(filePath));
     			// FileUtils.copyFile(afile, afiles);
     			System.out.println("请查看文件是否以跟换位置!!!-->1140");
     			if (afile.renameTo(afiles)) {
     				System.out.println("本地转移成功--ok!-->1142");
     			} else {
     				System.out.println("本地转移失败--No!-->1144");
     			}
     		} catch (Exception e) {
     			e.printStackTrace();
     		}
     	}	
    
  • 查看当前目录下子文件

     private String vcDocName; // 文档名称
     private Date dAddTime; // 新建时间
     private String sizeFile;	// 文件大小
     Set,Get 方法:省略
    
     public List<TCompDoc> documentManagementTreeSon(String fileUrl) throws Exception {
     		List<TCompDoc> listFile = new ArrayList<TCompDoc>();
     		File file = new File(fileUrl);
     		File[] fList = file.listFiles();
     		// 输出所有文件的名字
     		for (File f : fList) {
     			TCompDoc fileAttribute = new TCompDoc();
     			// 是文件吗?
     			if (f.isFile()) {
     				String sizeFile = "";
     				// 文件大小
     				long size = f.length();
     				long kb = 1024;
     				long mb = kb * 1024;
     				long gb = mb * 1024;
     				if (size >= gb) {
     					sizeFile = String.valueOf(String.format("%.1f GB", (float) size / gb));
     				} else if (size >= mb) {
     					float f1 = (float) size / mb;
     					sizeFile = String.valueOf(String.format(f1 > 100 ? "%.0f MB" : "%.1f1 MB", f1));
     				} else if (size >= kb) {
     					float f2 = (float) size / kb;
     					sizeFile = String.valueOf(String.format(f2 > 100 ? "%.0f KB" : "%.1f2 KB", f2));
     				} else
     					sizeFile = String.valueOf(String.format("%d B", size));
     				// 将查询到本地的文件名称 add到 List集合中
     				// 文件修改时间
     				Date date = new Date(f.lastModified());
     				fileAttribute.setdAddTime(date);
     				// 是文件,就输出它的名字
     				fileAttribute.setVcDocName(f.getName());
     				// 文件大小
     				fileAttribute.setSizeFile(sizeFile);
     				listFile.add(fileAttribute);
     			}
     			// 输出 所有文件夹的名字
     			if (f.isDirectory()) {
     				fileAttribute.setVcDocName(f.getName());
     				// 文件大小
     				fileAttribute.setSizeFile("---");
     				Date date = new Date(f.lastModified());
     				fileAttribute.setdAddTime(date);
     				listFile.add(fileAttribute);
     			}
     		}
     		return listFile;
     	}
    
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的URL和URLConnection类来实现根据文件路径下载文件,示例代码如下: ```java import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class FileDownloader { public static void download(String fileUrl, String saveDir) throws IOException { URL url = new URL(fileUrl); URLConnection conn = url.openConnection(); conn.connect(); BufferedInputStream bis = new BufferedInputStream(conn.getInputStream()); File saveDirFile = new File(saveDir); if(!saveDirFile.exists()){ saveDirFile.mkdirs(); } String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1); File file = new File(saveDir + File.separator + fileName); FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; int len; while ((len = bis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.flush(); fos.close(); bis.close(); System.out.println("文件下载成功"); } public static void main(String[] args) throws IOException { String fileUrl = "http://example.com/example.pdf"; String saveDir = "C:/downloads"; download(fileUrl, saveDir); } } ``` 其中,`fileUrl`为文件的URL地址,`saveDir`为保存文件目录。在`download`方法中,首先使用`URL`和`URLConnection`类获取文件流,然后创建文件保存目录,并使用`FileOutputStream`将文件写入到磁盘中。最后,关闭文件流并输出下载成功的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值