package com.tagmae.tsgame_erwang;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

public class Fileutils {
	 public static void deleteDir(final String pPath) {
	        File dir = new File(pPath);
	        deleteDirWihtFile(dir);
	    }
	 
	public static void deleteDirWihtFile(File dir) {
     if (dir == null || !dir.exists() || !dir.isDirectory())
         return;
     for (File file : dir.listFiles()) {
         if (file.isFile())
             file.delete(); // 删除所有文件
         else if (file.isDirectory())
             deleteDirWihtFile(file); // 递规的方式删除文件夹
     }
     dir.delete();// 删除目录本身
 }
    /**     *向文件中添加内容     *
     * * @param strcontent 内容
     * * @param filePath   地址
     * * @param fileName   文件名     */
    public static void writeToFile(String strcontent, String filePath) {
        //生成文件夹之后，再生成文件，不然会出错
        String strFilePath = filePath;



        // 每次写入时，都换行写
        String strContent = strcontent + "\t\n";
              File subfile = new File(strFilePath);
              RandomAccessFile raf = null;
              try {
                  /**   构造函数 第二个是读写方式    */
              raf = new RandomAccessFile(subfile, "rw");
              /**  将记录指针移动到该文件的最后  */
              raf.seek(subfile.length());
              /** 向文件末尾追加内容  */
              raf.write(strContent.getBytes());
              raf.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
            }


    /**     * 修改文件内容（覆盖或者添加）     *
     *  * @param path    文件地址
     *  * @param content 覆盖内容
     *  * @param append  指定了写入的方式，是覆盖写还是追加写(true=追加)(false=覆盖)     */
    public static void modifyFile(String path, String content, boolean append) {
        try {
            FileWriter fileWriter = new FileWriter(path, append);
            BufferedWriter writer = new BufferedWriter(fileWriter);
            writer.append(content);
            writer.flush();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 读文件
     * @param fileName
     * @return
     */
    public static String readFile(String fileName){
        StringBuffer sb = new StringBuffer("");
        FileReader input = null;
        BufferedReader reader = null;
        try{
            input = new FileReader(fileName);
            reader = new BufferedReader(input);
            String line = null;
            while((line = reader.readLine()) != null){
                sb.append(line);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(null != reader){
                try {
                    reader.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(null != input){
                try {
                    input.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return sb.toString();
    }

}
