File的基本实用操作

原创 2007年09月14日 11:45:00

常用的文件操作,包括目录,文件的创建,删除和修改等功能.

File的API连接:http://www.leftworld.net/online/j2sedoc/javaref/java.io.file_dsc.htm

源代码如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FileUtils {

 /**
  * 创建目录
  *
  * @param folderPath:目录路径
  * @return
  * @throws IOException
  */
 public static boolean createDirectory(String directoryPath)
   throws IOException {
  boolean result = false;
  File f = new File(directoryPath);
  if (!f.exists()) {
   result = f.mkdirs();
  } else {
   throw new IOException("the file " + f.getName() + " exited");
  }

  return result;
 }

 /**
  * 删除目录下所有文件
  *
  * @param directory
  *            (File 对象)
  */
 public static void deleteDirectory(String directoryPath) {
  File directory = new File(directoryPath);
  File[] entries = directory.listFiles();
  for (int i = 0; i < entries.length; i++) {
   if (entries[i].isDirectory()) {
    deleteDirectory(entries[i].getPath());
    entries[i].delete();
   } else {
    entries[i].delete();
   }
  }

 }

 /**
  * 创建文件
  *
  * @param filepath:文件所在目录路径,比如:c:/test/test.txt
  * @return
  */
 public static boolean createFile(String filepath) throws IOException {
  boolean result = false;
  File file = new File(filepath);
  result = file.createNewFile();
  file = null;
  return result;
 }

 /**
  * 删除目录下所有文件
  *
  * @param directory
  *            (File 对象)
  */
 public static void deleteFiles(File directory) {
  File[] entries = directory.listFiles();
  for (int i = 0; i < entries.length; i++) {
   entries[i].delete();
  }

 }

 /**
  * 删除文件
  *
  * @param filepath:文件所在物理路径
  * @return
  */
 public static boolean isDel(String filepath) {
  boolean result = false;
  File file = new File(filepath);
  result = file.delete();
  file = null;
  return result;
 }

 /**
  * 文件重命名
  *
  * @param filepath:文件所在物理路径
  * @param destname:新文件名
  * @return
  */
 public static boolean renamefile(String filepath, String destname) {
  boolean result = false;
  File f = new File(filepath);
  String fileParent = f.getParent();
  String filename = f.getName();
  File rf = new File(fileParent + "//" + destname);
  if (f.renameTo(rf)) {
   result = true;
  }
  f = null;
  rf = null;
  return result;
 }

 public static void copy(String srcfilepath, String destfilepath)
   throws IOException {

  copy(new File(srcfilepath), new File(destfilepath));

 }

 /**
  * 复制文件f1至f2
  *
  * @param f1
  *            源文件
  * @param f2
  *            目标文件
  * @throws IOException
  */
 public static void copy(File f1, File f2) throws IOException {
  // 创建文件输入输出流对象
  FileInputStream is = new FileInputStream(f1);
  FileOutputStream os = new FileOutputStream(f2);
  // 设定读取的字节数
  int count, n = 512;
  byte buffer[] = new byte[n];
  // 读取输入流
  count = is.read(buffer, 0, n);
  while (count != -1) {
   os.write(buffer, 0, count);
   count = is.read(buffer, 0, n);
  }
  // 关闭输入输出流
  is.close();
  os.close();
 }

 public boolean copyDirectory(String SrcDirectoryPath,
   String DesDirectoryPath) {

  try {
   // 创建的目录不存在
   File F0 = new File(DesDirectoryPath);
   if (!F0.exists()) {
    if (!F0.mkdir()) {
     System.out.println("创建的目录不存在!");
    }
   }
   File F = new File(SrcDirectoryPath);
   File[] files = F.listFiles(); //

   String srcName = "";
   String desName = "";
   int currentFile = 0;
   // 这个拷贝
   for (currentFile = 0; currentFile < files.length; currentFile++) {
    if (!files[currentFile].isDirectory()) {
     // 是文件,则直接拷贝
     srcName = files[currentFile].toString();
     desName = DesDirectoryPath + "//"
       + files[currentFile].getName();

     copy(srcName, desName);
    }
    // 文件夹
    else {
     //
     if (copyDirectory(files[currentFile].getPath().toString(),
       DesDirectoryPath + "//"
         + files[currentFile].getName().toString())) {

     } else {
      System.out.println("SubDirectory Copy Error!");
     }
    }
   }
   return true;
  } catch (Exception e) {
   e.printStackTrace();
   return false;
  }
 }

 /**
  * 取得文件或文件夹信息:路径、修改时间
  *
  * @param file
  * @throws IOException
  * @throws IOException
  */
 public static void getInfo(String filepath) throws IOException {
  getInfo(new File(filepath));
 }

 public static void getInfo(File file) throws IOException {
  // 初始化时间格式
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  if (file.isFile())
   // 返回抽象路径名的绝对路径、文件长度、最后修改时间
   System.out.println("<FILE>/t" + file.getAbsolutePath() + "/t"
     + sdf.format(new Date(file.lastModified())));
  else {
   System.out.println("/t" + file.getAbsolutePath());
   File[] files = file.listFiles();
   for (int i = 0; i < files.length; i++)
    getInfo(files[i]);
  }
 }

 public static void renameFile(String filepath, String token, String value) {
  renameFile(new File(filepath), token, value);
 }

 public static void renameFile(File file, String token, String value) {

  int count = 0;
  String oldName = file.getName();
  if (oldName.indexOf(token) == -1)
   return;
  count++;
  String oldPath = file.getAbsolutePath();
  String newName = file.getName().replaceAll(token, value);
  String newPath = oldPath.replaceAll(oldName, newName);
  File newfile = new File(newPath);
  try {
   file.createNewFile();
  } catch (IOException e) {
   e.printStackTrace();
  }
  file.renameTo(newfile);
  // log.debug((new StringBuilder()).append("the return value of rename
  // operation is ").append().toString());
 }

 public static void renameAll(String dirpath, String token, String value) {
  File path = new File(dirpath);
  List dirs = new ArrayList();
  dirs.add(path);
  File files[] = null;
  for (; dirs.size() != 0; dirs.remove(0)) {
   File dir = dirs.get(0) != null ? (File) dirs.get(0) : null;
   files = dir.listFiles();
   for (int i = 0; i < files.length; i++)
    if (files[i].isDirectory())
     dirs.add(files[i]);
    else
     renameFile(files[i], token, value);

  }

 }

}

Java File文件操作

Java提供File类,让我们对文件进行操作,简单整理了一下File类的用法。 1.基本概念File:文件和目录路径名的抽象表示形式,代表文件或者文件夹。 2.构造方法 // 根据pa...
  • MAGIC_JSS
  • MAGIC_JSS
  • 2016年05月21日 20:35
  • 7105

c++学习笔记—二叉树基本操作的实现

用c++语言实现的二叉树基本操作,包括二叉树的创建、二叉树的遍历(包括前序、中序、后序递归和非递归算法)、求二叉树高度,计数叶子节点数、计数度为1的节点数等基本操作。 IDE:vs2013 具体实...
  • xujian_2014
  • xujian_2014
  • 2015年01月15日 17:05
  • 1396

JAVA IDE IntelliJ IDEA使用简介(二)—之基本操作

一.在编辑器中打开文件  1.可以使用下面的几种方式打开project内的文件进行编辑  (·)在project窗口中双击需要编辑的文件。  (·)在project窗口选择需要编辑的文件,按F4...
  • jacksonning
  • jacksonning
  • 2013年03月26日 09:35
  • 17865

C#File类常用的文件操作方法(创建、移动、删除、复制等) File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和

C#File类常用的文件操作方法(创建、移动、删除、复制等) File类,是一个静态类,主要是来提供一些函数库用的。静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移...
  • baidu_35080512
  • baidu_35080512
  • 2017年11月13日 17:39
  • 132

java详解 --- File类的方法与基本操作

一.File类File类是java.io包下的一个类,从名字就可以看出来是以文件为操作对象的. 功能可以独立的完成对文件和文件夹的操作要求,亦可以辅助java.io包下的其他流类对文件的具体操作,例...
  • zxc1258012580
  • zxc1258012580
  • 2018年01月02日 21:20
  • 41

Directory类(DirectoryInfo类)和Path类与File类的基本方法与操作以及实例

1 文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。 2)Directory //操作目录(文件夹),静态类。 3)DirectoryInfo //文...
  • u011955860
  • u011955860
  • 2014年03月25日 20:44
  • 1492

操作File文件的一些基本打包函数

操作文件时的基本打包函数
  • CAIKAIKAI1
  • CAIKAIKAI1
  • 2016年10月21日 12:10
  • 146

java File类的基本操作

java File类文件基本操作
  • cjc211322
  • cjc211322
  • 2014年05月01日 09:45
  • 696

File基本操作

File基本操作 构造方法摘要 File(File parent, String child)            根据 parent 抽象路径名和 child 路...
  • u010220089
  • u010220089
  • 2015年12月06日 20:43
  • 312

java File的基本操作实例

import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 ...
  • cxwujian
  • cxwujian
  • 2011年04月28日 12:45
  • 375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:File的基本实用操作
举报原因:
原因补充:

(最多只允许输入30个字)