文件的创建 删除 写入 读取

package springTimer.read;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

import springTimer.delfile.DeleteFileUtil;

/**
 * 文件的创建 删除 写入 读取 测试
 * @author Administrator
 *
 */
public class FileTest {

 /*
  * 创建文件
  * filePath 创建文件的路径
  */
 public static boolean createFile(String filePath){
  boolean returnFlag = false;
  try {
   File file = new File(filePath);
   //判断父级目录是否存在
   if(!file.getParentFile().exists()){
    File parentFile = file.getParentFile();
    boolean b = parentFile.mkdirs();
    System.out.println("创建父级目录成功."+b);
   }else{
    returnFlag = false;
    System.out.println("目录已存在."+returnFlag);
   }
   
   //判断文件是否存在
   if(!file.exists()){
    returnFlag = file.createNewFile();
    System.out.println("创建文件成功."+returnFlag);
   }else{
    returnFlag = false;
    System.out.println("文件已存在."+returnFlag);
   }
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  return returnFlag;
  
 }
 
 
 
 /**
  * 删除文件,可以是文件或文件夹
  *
  * @param fileName
  *            要删除的文件路径
  * @return 删除成功返回true,否则返回false
  */
 public static boolean delete(String fileName) {
  File file = new File(fileName);
  if (!file.exists()) {
   System.out.println("删除文件失败:" + fileName + "不存在!");
   return false;
  } else {
   if (file.isFile())
    return deleteFile(fileName);
   else
    return deleteDirectory(fileName);
  }
 }

 /**
  * 删除单个文件
  *
  * @param fileName
  *            要删除的文件的文件路径
  * @return 单个文件删除成功返回true,否则返回false
  */
 public static boolean deleteFile(String fileName) {
  File file = new File(fileName);
  // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
  if (file.exists() && file.isFile()) {
   if (file.delete()) {
    System.out.println("删除单个文件" + fileName + "成功!");
    return true;
   } else {
    System.out.println("删除单个文件" + fileName + "失败!");
    return false;
   }
  } else {
   System.out.println("删除单个文件失败:" + fileName + "不存在!");
   return false;
  }
 }

 /**
  * 删除目录及目录下的文件
  *
  * @param dir
  *            要删除的目录的文件路径
  * @return 目录删除成功返回true,否则返回false
  */
 public static boolean deleteDirectory(String dir) {
  // 如果dir不以文件分隔符结尾,自动添加文件分隔符
  if (!dir.endsWith(File.separator))
   dir = dir + File.separator;
  File dirFile = new File(dir);
  // 如果dir对应的文件不存在,或者不是一个目录,则退出
  if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
   System.out.println("删除目录失败:" + dir + "不存在!");
   return false;
  }
  boolean flag = true;
  // 删除文件夹中的所有文件包括子目录
  File[] files = dirFile.listFiles();
  for (int i = 0; i < files.length; i++) {
   // 删除子文件
   if (files[i].isFile()) {
    flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
    if (!flag)
     break;
   }
   // 删除子目录
   else if (files[i].isDirectory()) {
    flag = DeleteFileUtil.deleteDirectory(files[i].getAbsolutePath());
    if (!flag)
     break;
   }
  }
  if (!flag) {
   System.out.println("删除目录失败!");
   return false;
  }
  // 删除当前目录
  if (dirFile.delete()) {
   System.out.println("删除目录" + dir + "成功!");
   return true;
  } else {
   return false;
  }
 }
 
 
 /*
  * 写入文件
  * filePath 写入文件的路径
  */
 public static boolean fileWriter(String filePath){
  
   try {
   
    File file = new File(filePath);
    if(!file.getParentFile().exists()){
     System.out.println("写入文件目录不存在.");
     boolean b = file.getParentFile().mkdirs();
     System.out.println("创建父级目录成功."+b);
    }
   
    FileWriter fw = new FileWriter(filePath, true);
    BufferedWriter bw = new BufferedWriter(fw);
    bw.append("在已有的基础上添加字符串001\r\n");
    bw.write("在已有的基础上添加字符串\r\n");// 往已有的文件上添加字符串
    System.out.println("写入字符成功.");
    bw.close();
    fw.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  return false;
  
 }
 
 
 
 /*
  * 读取文件
  * filePath 写入文件的路径
  */
 public static void fileRoad(String filePath){
     File file = new File(filePath); 
        InputStream in = null; 
  try { 
             System.out.println("以字节为单位读取文件内容,一次读多个字节:"); 
             // 一次读多个字节 
             byte[] tempbytes = new byte[100]; 
             int byteread = 0; 
             in = new FileInputStream(file); 
             FileTest.showAvailableBytes(in); 
             // 读入多个字节到字节数组中,byteread为一次读入的字节数 
             while ((byteread = in.read(tempbytes)) != -1) { 
                 System.out.write(tempbytes, 0, byteread); 
             } 
         } catch (Exception e1) { 
             e1.printStackTrace(); 
         } finally { 
             if (in != null) { 
                 try { 
                     in.close(); 
                 } catch (IOException e1) { 
                 } 
             } 
         } 
  
  
 }
 
 
 
  /**
     * 读取word文件内容
     * 
     * @param path
     * @return buffer
     */ 
 
    public static String readWord(String path) { 
        String buffer = ""; 
        try { 
            if (path.endsWith(".doc")) { 
                InputStream is = new FileInputStream(new File(path)); 
                WordExtractor ex = new WordExtractor(is); 
                buffer = ex.getText(); 
                ex.close(); 
            } else if (path.endsWith("docx")) { 
                OPCPackage opcPackage = POIXMLDocument.openPackage(path); 
                POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage); 
                buffer = extractor.getText(); 
                extractor.close(); 
            } else { 
                System.out.println("此文件不是word文件!"); 
            } 
 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
 
        return buffer; 
    } 
 
 
 
 
  /**
     * 显示输入流中还剩的字节数
     */ 
    private static void showAvailableBytes(InputStream in) { 
        try { 
            System.out.println("当前字节输入流中的字节数为:" + in.available()); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
 
 
 public static void main(String[] args) {
//  boolean b = FileTest.createFile("E:\\zhenglilunbotutest\\file.txt");
//  boolean b = FileTest.createFile("E:\\zhenglilunbotutest\\a\\v\\d\\file.png");
//  boolean b = FileTest.createFile("E:\\zhenglilunbotutest\\a\\v\\d\\file.doc");
//  boolean b = FileTest.createFile("E:\\zhenglilunbotutest\\a\\v\\d\\file.xls");
//  boolean b = FileTest.createFile("E:\\zhenglilunbotutest\\a\\v\\d\\a.xls");
//  boolean delete = FileTest.deleteDirectory("E:\\zhenglilunbotutest\\a");
//  boolean fileWriter = FileTest.fileWriter("E:\\zhenglilunbotutest\\121\\a.doc");
  FileTest.fileRoad("E:\\zhenglilunbotutest\\121\\b.doc");
  
 }
}

猜你喜欢

转载自blog.csdn.net/java_2017_csdn/article/details/79883580
今日推荐