import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List; import org.laya.io.IOUtils; /** * 文件操作工具类 */ public class FileUtil { /** * 创建文件夹 * @param path * @return */ public static File createPath(String path){ File file = new File(path); if(!file.exists()){ file.mkdirs(); } return file; } /** * 创建文件 * @param path * @param fileName */ public static File createFile(String path,String fileName){ File dirs = new File(path); if(!dirs.exists()){ dirs.mkdirs(); } File file = new File(path+File.separator+fileName); if(!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } return file; } /** * 判断是否存在 * @param path * @param fileName * @return */ public static boolean isExist(String path,String fileName){ File dirs = new File(path); if(!dirs.exists()){ return false; } File file = new File(path+fileName); if(!file.exists()){ return false; } return true; } /** * 清空文件内容 * @param file */ public static void clear(File file){ FileWriter fw; try { fw = new FileWriter(file); fw.write(""); fw.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 向文件中写入数据 * @param file * @param str */ public static void write(File file,String str){ FileWriter fw; try { fw = new FileWriter(file); fw.write(str); fw.close(); } catch (IOException e) { e.printStackTrace(); } } /** * A方法追加文件:使用RandomAccessFile */ public static void appendMethod(String fileName, String content) { try { // 打开一个随机访问文件流,按读写方式 RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); // 文件长度,字节数 long fileLength = randomFile.length(); //将写文件指针移到文件尾。 randomFile.seek(fileLength); randomFile.writeBytes(content); randomFile.close(); } catch (IOException e) { e.printStackTrace(); } } /** * B方法追加文件:使用FileWriter */ public static void append(File file, String content) { String fileName = file.getAbsolutePath(); try { //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 FileWriter writer = new FileWriter(fileName, true); writer.write(content); writer.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 以行为单位读取文件,常用于读面向行的格式化文件 */ public static List<String> readFileByLines(File file) { List<String> list = new ArrayList<String>(); BufferedReader reader = null; try { // System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; // int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 // System.out.println("line " + line + ": " + tempString); list.add(tempString); // return tempString; // line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } return list; } /** * 以行为单位向文件中写入内容 * @param path * @param filename * @param list 内容集合 * @return */ public static File writeFileByLines(File file,List<String> list) { try { FileWriter fw= new FileWriter(file); BufferedWriter bw=new BufferedWriter(fw); for (String string : list) { bw.write(string+"\t\n"); } bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return file; } /** * 复制单个文件 * @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 path */ public static void delFiles(File file) { if(file==null){ return; } try { if (file.isDirectory()) { String[] chlidren = file.list(); for (int i = 0; i < chlidren.length; i++) { IOUtils.forceDelete(new File(file+File.separator+chlidren[i])); } } IOUtils.forceDelete(file); } catch (IOException e) { e.printStackTrace(); } } }
关于文件File操作的工具类
猜你喜欢
转载自blog.csdn.net/zhaoraolin/article/details/80006353
今日推荐
周排行