packagetools;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.List;importorg.bson.Document;/***@authorchenhuan001
**/
public classFileUtil {
String newline= "\r\n";//windows
/*** 写入文件,末尾自动添加\r\n
* utf-8 追加
*@parampath
*@paramstr*/
public static voidwriteLog(String path, String str)
{try{
File file= newFile(path);if(!file.exists())
file.createNewFile();
FileOutputStream out= new FileOutputStream(file); //true表示追加
StringBuffer sb = newStringBuffer();
sb.append(str+ "\r\n");
out.write(sb.toString().getBytes("utf-8"));//out.close();
}catch(IOException ex)
{
System.out.println(ex.getStackTrace());
}
}/*** 写入文件,末尾自动添加\r\n
*@parampath
*@paramstr*/
public static void writeLog(String path, String str, booleanis_append, String encode)
{try{
File file= newFile(path);if(!file.exists())
file.createNewFile();
FileOutputStream out= new FileOutputStream(file, is_append); //true表示追加
StringBuffer sb = newStringBuffer();
sb.append(str+ "\r\n");
out.write(sb.toString().getBytes(encode));//out.close();
}catch(IOException ex)
{
System.out.println(ex.getStackTrace());
}
}/*** 整个文件以string放回,添加\r\n换行
*@parampath
*@return
*/
public staticString readLogByString(String path)
{
StringBuffer sb=newStringBuffer();
String tempstr=null;try{
File file=newFile(path);if(!file.exists())throw newFileNotFoundException();
FileInputStream fis=newFileInputStream(file);
BufferedReader br=new BufferedReader(new InputStreamReader(fis, "utf-8"));while((tempstr=br.readLine())!=null) {
sb.append(tempstr+ "\r\n");
}
}catch(IOException ex) {
System.out.println(ex.getStackTrace());
}returnsb.toString();
}/*** 加入编码
* 整个文件以string放回,添加\r\n换行
*@parampath
*@return
*/
public staticString readLogByStringAndEncode(String path, String encode)
{
StringBuffer sb=newStringBuffer();
String tempstr=null;try{
File file=newFile(path);if(!file.exists())throw newFileNotFoundException();
FileInputStream fis=newFileInputStream(file);
BufferedReader br=new BufferedReader(newInputStreamReader(fis, encode));while((tempstr=br.readLine())!=null) {
sb.append(tempstr+ "\r\n");
}
}catch(IOException ex) {
System.out.println(ex.getStackTrace());
}returnsb.toString();
}/*** 按行读取文件,以list的形式返回
*@parampath
*@return
*/
public static ListreadLogByList(String path) {
List lines = new ArrayList();
String tempstr= null;try{
File file= newFile(path);if(!file.exists()) {throw newFileNotFoundException();
}
FileInputStream fis= newFileInputStream(file);
BufferedReader br= new BufferedReader(new InputStreamReader(fis, "utf-8"));while((tempstr = br.readLine()) != null) {
lines.add(tempstr.toString());
}
}catch(IOException ex) {
System.out.println(ex.getStackTrace());
}returnlines;
}public static ListreadDocsFromFile(String path) {
List str_docs =readLogByList(path);
List docs = new ArrayList();//System.out.println(str_docs.size());
for (int i = 0; i < str_docs.size(); i++) {
String str_doc=str_docs.get(i);//System.out.println(str_doc);
Document doc = null;try{
doc=Document.parse(str_doc);
}catch(Exception e) {
LogUtil.error("\nreadDocsFromFile 中异常, 文件:" + path + "\n第" + i + "行,\n" + str_doc);//好吧有一条没写完...
}if (null !=doc) {
docs.add(doc);
}
}returndocs;
}/*** 创建目录
*@paramdir_path*/
public static voidmkDir(String dir_path) {
File myFolderPath= newFile(dir_path);try{if (!myFolderPath.exists()) {
myFolderPath.mkdir();
}
}catch(Exception e) {
LogUtil.error("新建目录操作出错");
e.printStackTrace();
}
}/*** 创建文件
*@paramfile_path*/
public static voidcreateNewFile(String file_path) {
File myFilePath= newFile(file_path);try{if (!myFilePath.exists()) {
myFilePath.createNewFile();
}
}catch(Exception e) {
LogUtil.error("新建文件操作出错");
e.printStackTrace();
}
}/*** 递归删除文件或者目录
*@paramfile_path*/
public static voiddeleteEveryThing(String file_path) {try{
File file=newFile(file_path);if(!file.exists()){return;
}if(file.isFile()){
file.delete();
}else{
File[] files=file.listFiles();for(int i=0;i
String root=files[i].getAbsolutePath();//得到子文件或文件夹的绝对路径
deleteEveryThing(root);
}
file.delete();
}
}catch(Exception e) {
LogUtil.error("删除文件失败");
}
}/** 得到一个文件夹下所有文件*/
public static ListgetAllFileNameInFold(String fold_path) {
List file_paths = new ArrayList();
LinkedList folderList = new LinkedList();
folderList.add(fold_path);while (folderList.size() > 0) {
File file= newFile(folderList.peekLast());
folderList.removeLast();
File[] files=file.listFiles();
ArrayList fileList = new ArrayList();for (int i = 0; i < files.length; i++) {if(files[i].isDirectory()) {
folderList.add(files[i].getPath());
}else{
fileList.add(files[i]);
}
}for(File f : fileList) {
file_paths.add(f.getAbsoluteFile().getPath());
}
}returnfile_paths;
}public static voidmain(String[] args) {//String path = "C:\\Users\\chenhuan001\\workspace\\CrawlSinaBySelenium\\src";//List file_paths = getAllFileNameInFold(path);//for(String file_path : file_paths) {//System.out.println(file_path);//}
deleteEveryThing("C:\\Users\\chenhuan001\\Desktop\\testDelete.txt");//TODO Auto-generated method stub//List docs = readDocsFromFile("Data/user_program_data.txt");//System.out.println(docs.size());//for (int i = 0; i < docs.size(); i++) {//System.out.println(docs.toString());//}//mkDir("tmp_dir");//createNewFile("tmp_dir/new_file1.txt");//deleteEveryThing("save.arff");
}
}