`

java 文件的创建 复制 移动 删除

阅读更多
/**
 * @author: yanghongpo 
 * @E-mail: yanghongpo@163.com
 * @datetime:Mar 11, 2009 4:10:36 PM
 */
package com.admin.db;
import java.io.BufferedReader; 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter; 

  

/**
 * @author Administrator
 *JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容,
 * 新建目录,多级目录创建,新建文件,有编码方式的文件创建,
 * 删除文件,删除文件夹,删除指定文件夹下所有文件,
 * 复制单个文件,复制整个文件夹的内容,移动文件,移动目录等 
 */
public class FileOperate {
 private static String message; 
 /**
  * @param args
  */
 public static void main(String[] args) {
//  String str="d:/test11.txt";
//  try {
//   System.out.println(readTxt(str,""));
//  } catch (IOException e) {
//   // TODO Auto-generated catch block
//   e.printStackTrace();
//  }
//
//  createFolder("D:/test/Aa/bb/cc/dd/");
  
//  createFile("D:/aa.txt","aad带有完整绝对路径的文件名 ddaa","gbk"); 
  
//  delFile("d:/aaaa.txt");
//  delAllFile("D:/test");
//  copyFile("d:\\aa.txt","c:/ss.txt");
  copyFolder("d:\\test","c:/ast");
  System.out.println(message);
 }
 
 /** 
 * 读取文本文件内容 
 * @param filePathAndName 带有完整绝对路径的文件名 
 * @param encoding 文本文件打开的编码方式 
 * @return 返回文本文件的内容 
 */ 
 public static String readTxt(String filePathAndName,String encoding) throws IOException{ 
     encoding = encoding.trim();
  StringBuffer str = new StringBuffer("");
  String st = "";
  try {
   FileInputStream fs = new FileInputStream(filePathAndName);  //文件输入流
   InputStreamReader isr;
   if (encoding.equals("")) {
    isr = new InputStreamReader(fs);
   } else {
    isr = new InputStreamReader(fs, encoding);
   }
   BufferedReader br = new BufferedReader(isr);
   try {
    String data = "";
    while ((data = br.readLine()) != null) {
     str.append(data + " \n");
    }
   } catch (Exception e) {
    str.append(e.toString());
   }
   st = str.toString();
   fs.close();    //关闭资源
  } catch (IOException es) {
   es.printStackTrace();
   st = "";
  }
  return st;
 }  

 /** 
 * 新建目录 
 * @param folderPath 目录 
 * @return 返回目录创建后的路径 
 */ 
 public static boolean createFolder(String folderPath) {
  try {
   File myFilePath = new File(folderPath);
   if (!myFilePath.exists()) {
    myFilePath.mkdirs();
   }
   return true;
  } catch (Exception e) {
   message = "创建目录操作出错";
   return false;
  }
 }  


 /** 
 * 新建文件 
 * @param filePathAndName 文本文件完整绝对路径及文件名  该文件路径必须是物理存在的
 * @param fileContent 文本文件内容 
 * @return 
 */ 
 public static void createFile(String filePathAndName, String fileContent) { 

  try {
   String filePath = filePathAndName;
//   filePath = filePath.toString();
   File myFilePath = new File(filePath);
   if (!myFilePath.exists()) {
    myFilePath.createNewFile();
   }
//   FileWriter resultFile = new FileWriter(myFilePath);
   PrintWriter myFile = new PrintWriter(myFilePath);
   myFile.println(fileContent);
   myFile.close();
//   resultFile.close();
  } catch (Exception e) {
   message = "创建文件操作出错";
  }
 }  


 /**
  * 有编码方式的文件创建
  *
  * @param filePathAndName
  *            文本文件完整绝对路径及文件名
  * @param fileContent
  *            文本文件内容
  * @param encoding
  *            编码方式 例如 GBK 或者 UTF-8
  * @return
  */ 
 public static void createFile(String filePathAndName, String fileContent,
   String encoding) { 

  try {
   File myFilePath = new File(filePathAndName);
   if (!myFilePath.exists()) {
    myFilePath.createNewFile();
   }
   PrintWriter myFile = new PrintWriter(myFilePath, encoding);
   myFile.println(fileContent);
   myFile.close();
  } catch (Exception e) {
   message = "创建文件操作出错";
  }
 }  


 /** 
 * 删除文件 
 * @param filePathAndName 文本文件完整绝对路径及文件名 
 * @return Boolean 成功删除返回true遭遇异常返回false 
 */ 
 public static boolean delFile(String filePathAndName) {
  boolean bool = false;
  try {
   String filePath = filePathAndName;
   File myDelFile = new File(filePath);
   if (myDelFile.exists()) {
    myDelFile.delete();
    bool = true;
   } else {
    bool = false;
    message = (filePathAndName + "删除文件操作出错");
   }
  } catch (Exception e) {
   message = e.toString();
  }
  return bool;
 }  

 /** 
 * 删除文件夹 
 * @param folderPath 文件夹完整绝对路径 
 * @return 
 */ 
 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) {
   message = ("删除文件夹操作出错");
  }
 }  

 /** 
 * 删除指定文件夹下所有文件 
 * @param path 文件夹完整绝对路径 
 * @return  separator默认是String类型与系统有关的默认名称分隔符。
 * 此字段被初始化为包含系统属性 file.separator 值的第一个字符
 * @return 
 */ 
 public static boolean delAllFile(String path) {
  boolean bea = false;
  File file = new File(path);
  if (!file.exists()) {
   return bea;
  }
  if (!file.isDirectory()) {  //是一个目录   
   return bea;
  }
  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]);// 再删除空文件夹
    bea = true;
   }
  }
  return bea;
 }  

 /** 
 * 复制单个文件 
 * @param oldPathFile 准备复制的文件源 
 * @param newPathFile 拷贝到新绝对路径带文件名 
 * @return 
 */ 
 public static void copyFile(String oldPathFile, String newPathFile) {
  try {
   int bytesum = 0;
   int byteread = 0;
   File oldfile = new File(oldPathFile);
   if (oldfile.exists()) { // 文件存在时
    InputStream inStream = new FileInputStream(oldPathFile); // 读入原文件
    FileOutputStream fs = new FileOutputStream(newPathFile);
    byte[] buffer = new byte[512];
    while ((byteread = inStream.read(buffer)) != -1) {
     bytesum += byteread; // 字节数 文件大小
     System.out.println(bytesum);
     fs.write(buffer, 0, byteread);
    }
    inStream.close();
    fs.close();
   }
  } catch (Exception e) {
   message = ("复制单个文件操作出错");
  }
 }  

 /** 
 * 复制整个文件夹的内容 
 * @param oldPath 准备拷贝的目录 
 * @param newPath 指定绝对路径的新目录 
 * @return 
 */ 
 public static void copyFolder(String oldPath, String newPath) {
  try {
   new File(newPath).mkdirs(); // 如果文件夹不存在 则建立新文件夹
   File a = new File(oldPath);
   String[] file = a.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()) {// 如果是子文件夹
     copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
    }
   }
  } catch (Exception e) {
   message = "复制整个文件夹内容操作出错";
  }
 } 
//
//
 /** 
 * 移动文件 
 * @param oldPath 
 * @param newPath 
 * @return 
 */ 
 public void moveFile(String oldPath, String newPath) {
  copyFile(oldPath, newPath);
  delFile(oldPath);
 }  


 /** 
 * 移动目录 
 * @param oldPath 
 * @param newPath 
 * @return 
 */ 
 public void moveFolder(String oldPath, String newPath) {
  copyFolder(oldPath, newPath);
  delFolder(oldPath);
 } 

 public String getMessage() {
  return this.message;
 }  

} 

 

分享到:
评论

相关推荐

    java 文件或文件夹 创建 删除 复制 移动 指定目录等

    java 文件或文件夹 创建 删除 复制 移动 指定目录等

    文件移动 java

    - 在Java中,文件移动可以通过多种方式实现,包括但不限于使用`java.io.File`类的`renameTo()`方法或者通过复制文件后删除原文件的方式。 2. **`java.io.File`类简介**: - `java.io.File`是Java标准库中的一个类...

    java 连接 FTP 文件操作(上传,下载,删除,复制

    本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 首先,Java通过`java.net`和`javax.net`包提供了FTP客户端的功能。主要依赖于`java.net....

    java 移动文件.

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

    文件资源管理器(java)文件打开删除复制粘贴等

    本篇文章将深入探讨如何使用Java来创建一个能够进行文件打开、删除、复制和粘贴操作的文件资源管理器。 首先,我们要了解Java中处理文件的基本类,如`java.io.File`。`File`类提供了许多方法,如`exists()`用于检查...

    java_io_文件操作_复制_删除_移动_下载

    本文将详细介绍如何使用Java IO来进行文件的基本操作,包括复制、删除、移动以及下载等实用功能。通过具体的代码示例,我们将深入探讨这些操作背后的实现原理。 #### 二、文件删除 文件删除是文件操作中最常见的...

    新建、删除、复制、移动文件

    文件操作是计算机科学和信息技术中的一种基本操作,涉及到文件的创建、删除、复制和移动等基本操作。下面我们将详细介绍文件操作的基础知识。 一、新建文件和目录 新建文件和目录是文件操作的基本功能。通过使用...

    安卓SD卡文件管理更新信息相关-文件管理器项目支持文件创建文件夹创建文件删除移动复制等功能还有方便方式全选等.rar

    本项目聚焦于SD卡的文件管理,提供了丰富的功能,如文件创建、文件夹创建、文件删除、移动、复制等,同时也包括了全选功能,提高了操作效率。以下是对这些知识点的详细说明: 1. **文件创建**:在安卓设备上,用户...

    java 文件管理器

    Java 文件管理器是一款基于Java语言开发的文件管理系统,它提供了用户友好的图形用户界面(GUI),使得用户可以方便地进行文件和目录的操作,如浏览、创建、删除、重命名、移动和复制等。这款应用程序旨在提供一个...

    Java IO 基础操作(文件读写和移动)

    如果需要在不同目录间移动,建议先复制再删除原始文件: ```java File source = new File("sourceFile.txt"); File dest = new File("destinationFile.txt"); source.renameTo(dest); // 只在同一目录下有效 ``` ...

    文件的移动,删除等操作

    在IT领域,文件操作是日常开发中的基础任务之一,尤其对于Java程序员来说,熟练掌握文件的移动、删除等操作至关重要。这些操作不仅涉及到文件系统的交互,还与程序的数据持久化和资源管理紧密相关。本练习旨在帮助...

    java操作文件(创建、删除、复制、粘帖)参照.pdf

    Java 文件操作是 Java 程序员日常开发中的常见任务,涵盖了文件的创建、删除、复制和移动等多个方面。以下是对这些操作的详细说明: 1. **创建文件夹**:在 `newFolder` 方法中,通过 `java.io.File` 类的 `mkdir()...

    java IO操作 (读写、追加、删除、移动、复制) 源码集合

    这个源码集合展示了Java IO操作的基本用法,对于学习和理解Java文件操作非常有帮助。通过这些基础操作,开发者可以构建复杂的数据处理流程,例如日志记录、文件备份、数据迁移等。在实际开发中,应根据具体需求选择...

    java文件操作

    Java文件操作是编程中不可或缺的一部分,尤其是在处理I/O流、文件读写以及文件管理时。Apache Commons IO是一个非常实用的库,它为Java开发者提供了大量的工具类和方法,以简化文件操作。在这个场景中,我们关注的是...

    Java文件批量处理程序

    1. 新建文件:用户可以使用该程序新建文件和文件夹,满足用户对文件创建的需求。 2. 复制:该程序支持批量复制文件,用户可以选择要复制的文件夹和目标文件夹,程序将自动完成复制操作。 3. 移动:用户可以使用该...

    File-Operation-by-java.rar_java 文件复制_operation

    这个名为"File-Operation-by-java.rar"的压缩包包含了一个用Java实现的文件操作示例,它演示了如何进行文件复制、移动、删除以及新建等基本操作。让我们详细探讨一下这些功能的实现。 1. **文件复制**: 文件复制...

    文件监视,监视对文件的复制删除移动等操作

    在IT领域,文件监视是一项重要的技术,主要用于跟踪和记录对文件系统中文件的各种操作,如复制、删除、移动等。这种技术广泛应用于系统管理和安全监控,帮助管理员了解系统的活动情况,及时发现潜在的问题和异常行为...

    java 文本文件 支持新建,打开,复制,剪切...

    如果文件被移动到不同的目录,它实际上是在源位置删除文件并将其在新位置创建。请注意,这个操作不是原子性的,可能在某些情况下失败。 5. **其他文件操作**: 除了上述功能,Java还提供了其他文件操作,如检查...

Global site tag (gtag.js) - Google Analytics