`

文件操作

阅读更多
import     java.io.*;     

 
public     class     FileOperate     {    
      public     FileOperate()     {    
      }     
      /**    
          *     新建目录    
          *     @param     folderPath     String     如     c:/fqf    
          *     @return     boolean    
          */    
      public     void     newFolder(String     folderPath)     {    
              try     {    
                      String     filePath     =     folderPath;    
                      filePath     =     filePath.toString();    
                      java.io.File     myFilePath     =     new     java.io.File(filePath);    
                      if     (!myFilePath.exists())     {    
                              myFilePath.mkdir();    
                      }    
              }    
              catch     (Exception     e)     {    
                      System.out.println( "新建目录操作出错 ");    
                      e.printStackTrace();    
              }    
      }    
 
      /**    
          *     新建文件    
          *     @param     filePathAndName     String     文件路径及名称     如c:/fqf.txt    
          *     @param     fileContent     String     文件内容    
          *     @return     boolean    
          */    
      public     void     newFile(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(resultFile);    
                      String     strContent     =     fileContent;    
                      myFile.println(strContent);    
                      resultFile.close();    
 
              }    
              catch     (Exception     e)     {    
                      System.out.println( "新建目录操作出错 ");    
                      e.printStackTrace();    
 
              }    
 
      }    
 
      /**    
          *     删除文件    
          *     @param     filePathAndName     String     文件路径及名称     如c:/fqf.txt    
          *     @param     fileContent     String    
          *     @return     boolean    
          */    
      public     void     delFile(String     filePathAndName)     {    
              try     {    
                      String     filePath     =     filePathAndName;    
                      filePath     =     filePath.toString();    
                      java.io.File     myDelFile     =     new     java.io.File(filePath);    
                      myDelFile.delete();    
 
              }    
              catch     (Exception     e)     {    
                      System.out.println( "删除文件操作出错 ");    
                      e.printStackTrace();    
 
              }    
 
      }    
 
      /**    
          *     删除文件夹    
          *     @param     filePathAndName     String     文件夹路径及名称     如c:/fqf    
          *     @param     fileContent     String    
          *     @return     boolean    
          */    
      public     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)     {    
                      System.out.println( "删除文件夹操作出错 ");    
                      e.printStackTrace();    
 
              }    
 
      }    
 
      /**    
          *     删除文件夹里面的所有文件    
          *     @param     path     String     文件夹路径     如     c:/fqf    
          */    
      public     void     delAllFile(String     path)     {    
              File     file     =     new     File(path);    
              if     (!file.exists())     {    
                      return;    
              }    
              if     (!file.isDirectory())     {    
                      return;    
              }    
              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]);//再删除空文件夹    
                      }    
              }    
      }    
 
      /**    
          *     复制单个文件    
          *     @param     oldPath     String     原文件路径     如:c:/fqf.txt    
          *     @param     newPath     String     复制后路径     如:f:/fqf.txt    
          *     @return     boolean    
          */    
      public     void     copyFile(String     oldPath,     String     newPath)     {    
              try     {    
                      int     bytesum     =     0;    
                      int     byteread     =     0;    
                      File     oldfile     =     new     File(oldPath);    
                      if     (oldfile.exists())     {     //文件存在时    
                              InputStream     inStream     =     new     FileInputStream(oldPath);     //读入原文件    
                              FileOutputStream     fs     =     new     FileOutputStream(newPath);    
                              byte[]     buffer     =     new     byte[1444];    
                              int     length;    
                              while     (     (byteread     =     inStream.read(buffer))     !=     -1)     {    
                                      bytesum     +=     byteread;     //字节数     文件大小    
                                      System.out.println(bytesum);    
                                      fs.write(buffer,     0,     byteread);    
                              }    
                              inStream.close();    
                      }    
              }    
              catch     (Exception     e)     {    
                      System.out.println( "复制单个文件操作出错 ");    
                      e.printStackTrace();    
 
              }    
 
      }    
 
      /**    
          *     复制整个文件夹内容    
          *     @param     oldPath     String     原文件路径     如:c:/fqf    
          *     @param     newPath     String     复制后路径     如:f:/fqf/ff    
          *     @return     boolean    
          */    
      public     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)     {    
                      System.out.println( "复制整个文件夹内容操作出错 ");    
                      e.printStackTrace();    
 
              }    
 
      }    
 
      /**    
          *     移动文件到指定目录    
          *     @param     oldPath     String     如:c:/fqf.txt    
          *     @param     newPath     String     如:d:/fqf.txt    
          */    
      public     void     moveFile(String     oldPath,     String     newPath)     {    
              copyFile(oldPath,     newPath);    
              delFile(oldPath);    
 
      }    
 
      /**    
          *     移动文件到指定目录    
          *     @param     oldPath     String     如:c:/fqf.txt    
          *     @param     newPath     String     如:d:/fqf.txt    
          */    
      public     void     moveFolder(String     oldPath,     String     newPath)     {    
              copyFolder(oldPath,     newPath);    
              delFolder(oldPath);    
 
      }    
}
分享到:
评论
1 楼 xf.zhouwenjun 2009-07-03  

:lol:                   

import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class file_input {
    // 源文件夹
    static String url1 = "E:/mobile-map/test/gif/beijingnew/00release/beijing/data";
    // 目标文件夹
    static String url2 = "E:/mobile-map/test/gif/beijingnew/00release/beijing/";
    public static void main(String args[]) throws IOException {
        // 创建目标文件夹
        (new File(url2)).mkdirs();
        // 获取源文件夹当前下的文件或目录
        File[] file = (new File(url1)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
                // 复制文件
                copyFile(file[i],new File(url2+file[i].getName()));
            }
            if (file[i].isDirectory()) {
                // 复制目录
                String sourceDir=url1+File.separator+file[i].getName();
                String targetDir=url2+File.separator+file[i].getName();
                copyDirectiory(sourceDir, targetDir);
            }
        }
        // 删除源文件夹及所有文件
        delFolder(url1);
    }
   
   
   
// 复制文件
public static void copyFile(File sourceFile,File targetFile) 
throws IOException{
        // 新建文件输入流并对它进行缓冲
        FileInputStream input = new FileInputStream(sourceFile);
        BufferedInputStream inBuff=new BufferedInputStream(input);
 
        // 新建文件输出流并对它进行缓冲
        FileOutputStream output = new FileOutputStream(targetFile);
        BufferedOutputStream outBuff=new BufferedOutputStream(output);
        
        // 缓冲数组
        byte[] b = new byte[1024 * 5];
        int len;
        while ((len =inBuff.read(b)) != -1) {
            outBuff.write(b, 0, len);
        }
        // 刷新此缓冲的输出流
        outBuff.flush();
        
        // 关闭流
        inBuff.close();
        outBuff.close();
        output.close();
        input.close();
    }
    // 复制文件夹
    public static void copyDirectiory(String sourceDir, String targetDir)
            throws IOException {
        // 新建目标目录
        (new File(targetDir)).mkdirs();
        // 获取源文件夹当前下的文件或目录
        File[] file = (new File(sourceDir)).listFiles();
        for (int i = 0; i < file.length; i++) {
            if (file[i].isFile()) {
                // 源文件
                File sourceFile=file[i];
                // 目标文件
               File targetFile=new 
File(new File(targetDir).getAbsolutePath()
+File.separator+file[i].getName());
                copyFile(sourceFile,targetFile);
            }
            if (file[i].isDirectory()) {
                // 准备复制的源文件夹
                String dir1=sourceDir + "/" + file[i].getName();
                // 准备复制的目标文件夹
                String dir2=targetDir + "/"+ file[i].getName();
                copyDirectiory(dir1, dir2);
            }
 

        }
   
   
}
/**
* 删除文件夹
*
* @param filePathAndName
*            String 文件夹路径及名称 如c:/fqf
* @param fileContent
*            String
* @return boolean
*/
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) {
System.out.println("删除文件夹操作出错 ");
e.printStackTrace();

}

}

/**
* 删除文件夹里面的所有文件
*
* @param path
*            String 文件夹路径 如 c:/fqf
*/
public static void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
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]);// 再删除空文件夹
}
}
}
}

相关推荐

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作

    ### 知识点详解 #### 一、二级目录结构及其...通过以上分析可以看出,本实习通过模拟实现采用了二级目录结构的磁盘文件系统中的文件操作,不仅加深了对文件系统原理的理解,还锻炼了数据结构设计和算法实现的能力。

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。 文件系统是操作系统中管理和存取信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。 在用户程序中可使用文件系统提供的...

    CANoe /CAPL 文件操作脚本

    CANoe/CAPL 文件操作脚本是用于自动化处理CANoe环境中的配置、数据记录和分析的编程工具。CANoe是一款广泛应用于汽车电子系统的诊断、测试和测量的软件,而CAPL(CANoe Application Programming Language)是CANoe内...

    Android JNI调用-文件操作

    在本教程中,我们将重点讨论如何通过JNI在Android应用中进行文件操作。 首先,要使用JNI,我们需要在Java类中声明native方法。例如,我们可以声明一个名为`readFileFromNative`的方法: ```java public class ...

    java文件操作类

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

    操作系统实验磁盘文件操作

    大学本科操作系统实验 《磁盘文件操作模拟C语言》,花了两天的时间调试。

    Unity中Android的文件操作

    原数据存放在StreamingAsset中,首次启动复制到persistentDataPath,以后进行更新和读取都在persistentDataPath中使用File进行文件操作。需要恢复书序的时候从StreamingAsset中获取即可。

    js实现读写文件操作

    js实现的读写文件,文件放在的c:\12.txt里

    C#编程 文件操作 ManageFileByType(源码)(源码)

    C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ManageFileByType(源码)(源码)C#编程 文件操作 ...

    C#编程 文件操作 DeleteDirByDG(源码)(源码)

    C#编程 文件操作 DeleteDirByDG(源码)(源码)C#编程 文件操作 DeleteDirByDG(源码)(源码)C#编程 文件操作 DeleteDirByDG(源码)(源码)C#编程 文件操作 DeleteDirByDG(源码)(源码)C#编程 文件操作 DeleteDirByDG(源码)...

    C#编程 文件操作 OperateXML(源码)(源码)

    C#编程 文件操作 OperateXML(源码)(源码)C#编程 文件操作 OperateXML(源码)(源码)C#编程 文件操作 OperateXML(源码)(源码)C#编程 文件操作 OperateXML(源码)(源码)C#编程 文件操作 OperateXML(源码)(源码)C#编程 ...

    操作系统实验4_文件系统

    操作系统实验四的核心目标是设计和实现一个简单的...通过这样的实验,学生能够深入理解文件系统如何管理磁盘空间,跟踪文件元数据,以及如何执行基本的文件操作,这对理解和设计更复杂的操作系统有着至关重要的作用。

    C#文件操作大全.pdf

    根据提供的信息,我们可以总结出以下关于C#文件操作的关键知识点: ### 1. 创建文件夹 在C#中,可以通过`System.IO`命名空间中的`Directory.CreateDirectory`方法来创建一个新的文件夹。 ```csharp using System....

    pb操作TXT文件(打开,写入,关闭,删除等等)

    - **错误处理**:在进行文件操作时,应添加适当的错误处理代码,如`Try...Catch`结构,以应对可能出现的异常情况,如文件不存在、权限问题等。 - **定位**:可以使用`Seek`方法改变读写位置,`Tell`方法获取当前...

    VC之PDF文件操作

    在VC++环境中进行PDF文件操作是一项常见的任务,尤其在开发桌面应用程序时,可能需要读取、编辑或生成PDF文档。本篇文章将详细讲解如何在VC++中实现这些功能,主要涉及的技术点包括PDF文件的基本概念、PDF库的使用...

    LabVIEW文件操作_数据存储 VI源程序

    在“LabVIEW文件操作_数据存储 VI源程序”这个主题中,我们将深入探讨如何使用LabVIEW进行文件操作,特别是数据的读取与存储。 一、LabVIEW的数据存储 1. **电子表格(Excel)文件操作**:LabVIEW提供了强大的...

    linux C语言 使用结构体对文件操作 读 写 查找

    在Linux系统中,C语言是进行系统级编程的首选语言,尤其在文件操作方面,它提供了丰富的函数库和系统调用来处理各种文件操作任务。本教程将深入探讨如何使用C语言中的结构体来管理和操作文件。 首先,让我们理解...

    实现简单的文件系统

    通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简单的单用户文件...

    C#文本文件读取和写入(文件、目录操作)

    在C#中,`System.IO`命名空间提供了丰富的类来处理文件操作。例如,`File`类提供了静态方法用于读写文件,而`StreamReader`和`StreamWriter`则用于流式读写。 1. **读取文本文件**: 使用`File.ReadAllText()`或`...

    操作系统c语言模拟文件管理系统

    5. **文件保存**:在C语言中,文件的保存是隐含在文件操作中的。每次写入操作都会实时保存到磁盘,除非使用了缓冲机制。当文件关闭时,缓冲区中的数据会被自动写入。 6. **打印当前文件**:这可能意味着列出当前...

Global site tag (gtag.js) - Google Analytics