`
tyl
  • 浏览: 50764 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Java操作文件

阅读更多

//网上找到,忘记网址了
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 *
 * <p>
 * Title: 文件处理工具类
 * </p>
 * <p>
 * Description:实现文件的简单处理,复制文件、目录等
 * </p>
 * <p>
 * Copyright: Copyright (c) 2005
 * </p>
 * <p>
 * Company: www.easyjf.com
 * </p>
 *
 * @author 天一
 * @version 1.0
 */
public class FileUtil {

 /**
  * 复制目录下的文件(不包括该目录)到指定目录,会连同子目录一起复制过去。
  *
  * @param targetFile
  * @param path
  */
 public static void copyFileFromDir(String targetDir, String path) {
  File file = new File(path);
  createFile(targetDir, false);
  if (file.isDirectory()) {
   copyFileToDir(targetDir, listFile(file));
  }
 }

 /**
  * 复制目录下的文件(不包含该目录和子目录,只复制目录下的文件)到指定目录。
  *
  * @param targetDir
  * @param path
  */
 public static void copyFileOnly(String targetDir, String path) {
  File file = new File(path);
  File targetFile = new File(targetDir);
  if (file.isDirectory()) {
   File[] files = file.listFiles();
   for (File subFile : files) {
    if (subFile.isFile()) {
     copyFile(targetFile, subFile);
    }
   }
  }
 }

 /**
  * 复制目录到指定目录。targetDir是目标目录,path是源目录。
  * 该方法会将path以及path下的文件和子目录全部复制到目标目录
  *
  * @param targetDir
  * @param path
  */
 public static void copyDir(String targetDir, String path) {
  File targetFile = new File(targetDir);
  createFile(targetFile, false);
  File file = new File(path);
  if (targetFile.isDirectory() && file.isDirectory()) {
   copyFileToDir(targetFile.getAbsolutePath() + "/" + file.getName(),
     listFile(file));
  }
 }

 /**
  * 复制一组文件到指定目录。targetDir是目标目录,filePath是需要复制的文件路径
  *
  * @param targetDir
  * @param filePath
  */
 public static void copyFileToDir(String targetDir, String... filePath) {
  if (targetDir == null || "".equals(targetDir)) {
   System.out.println("参数错误,目标路径不能为空");
   return;
  }
  File targetFile = new File(targetDir);
  if (!targetFile.exists()) {
   targetFile.mkdir();
  } else {
   if (!targetFile.isDirectory()) {
    System.out.println("参数错误,目标路径指向的不是一个目录!");
    return;
   }
  }
  for (String path : filePath) {
   File file = new File(path);
   if (file.isDirectory()) {
    copyFileToDir(targetDir + "/" + file.getName(), listFile(file));
   } else {
    copyFileToDir(targetDir, file, "");
   }
  }
 }

 /**
  * 复制文件到指定目录。targetDir是目标目录,file是源文件名,newName是重命名的名字。
  *
  * @param targetFile
  * @param file
  * @param newName
  */
 public static void copyFileToDir(String targetDir, File file, String newName) {
  String newFile = "";
  if (newName != null && !"".equals(newName)) {
   newFile = targetDir + "/" + newName;
  } else {
   newFile = targetDir + "/" + file.getName();
  }
  File tFile = new File(newFile);
  copyFile(tFile, file);
 }

 /**
  * 复制文件。targetFile为目标文件,file为源文件
  *
  * @param targetFile
  * @param file
  */
 public static void copyFile(File targetFile, File file) {
  if (targetFile.exists()) {
   System.out.println("文件" + targetFile.getAbsolutePath()
     + "已经存在,跳过该文件!");
   return;
  } else {
   createFile(targetFile, true);
  }
  System.out.println("复制文件" + file.getAbsolutePath() + "到"
    + targetFile.getAbsolutePath());
  try {
   InputStream is = new FileInputStream(file);
   FileOutputStream fos = new FileOutputStream(targetFile);
   byte[] buffer = new byte[1024];
   while (is.read(buffer) != -1) {
    fos.write(buffer);
   }
   is.close();
   fos.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static String[] listFile(File dir) {
  String absolutPath = dir.getAbsolutePath();
  String[] paths = dir.list();
  String[] files = new String[paths.length];
  for (int i = 0; i < paths.length; i++) {
   files[i] = absolutPath + "/" + paths[i];
  }
  return files;
 }
 
 public static void createFile(String path, boolean isFile){
  createFile(new File(path), isFile);
 }

 public static void createFile(File file, boolean isFile) {
  if (!file.exists()) {
   if (!file.getParentFile().exists()) {
    createFile(file.getParentFile(), false);
   } else {
    if (isFile) {
     try {
      file.createNewFile();
     } catch (IOException e) {
      e.printStackTrace();
     }
    } else {
     file.mkdir();
    }
   }
  }
 }

}

分享到:
评论

相关推荐

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    java操作文件工具类

    文件工具类java操作文件工具类java操作文件工具类java操作文件工具类java操作文件工具类

    java操作文件

    java操作文件,包括文件的读写,删以及如何处理大文件的读写

    java操作文件,得到文件名,大小,时间,及修改时间

    java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间java操作文件,得到文件名,大小,时间,及修改时间

    java 操作文件

    文件的读写,文件的夹的操作,复制整个文件夹的操作

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    java视频教程—Java文件操作

    java视频教程 Java文件操作 JavaFile

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA代码实现远程操作服务器文件

    "JAVA代码实现远程操作服务器文件" Titulo: JAVA代码实现远程操作服务器文件 JAVA代码实现远程操作服务器文件是指使用JAVA语言实现远程操作服务器文件的功能,实现FTP,共享文件夹操作。该功能可以实现远程服务器...

    java操作数据库及文件的简单工具

    java操作数据库及文件的简单工具;java操作数据库及文件的简单工具;java操作数据库及文件的简单工具; 数据迁移的时候,自己写的。在这里保存一份,以便以后使用。 因为简单,所以强大

    SAX.java 操作xml文件

    SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件SAX.java 操作xml文件

    Java 上传文件到 SharePoint

    首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要使用Microsoft提供的客户端对象模型(Client Object Model,...

    java通过文件头内容判断文件类型

    在Java编程中,判断文件类型通常不是通过文件扩展名,而是通过读取文件的头部字节来识别。这是因为有些文件可能...理解并掌握这个方法,能够帮助我们在实际开发中更好地处理各种文件操作,提高程序的健壮性和安全性。

    java实现windows文件系统操作监控

    在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...

    java 移动文件.

    "Java 文件操作" Java 文件操作是 Java 编程语言中的一种基本操作,包括文件的移动、复制、删除、剪切等。下面是关于 Java 文件操作的知识点总结: 一、文件移动 文件移动是指将文件从一个目录下移到另一个目录下...

    java操作csv文件(读、写)

    在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...

Global site tag (gtag.js) - Google Analytics