温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JAVA文件操作工具类是什么

发布时间:2021-10-19 18:03:28 来源:亿速云 阅读:169 作者:柒染 栏目:大数据

JAVA文件操作工具类是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Java常用文件工具类,常规的文本内容读写、文件移动、文件复制、文件切分、文件追加写、文件更名、分页读取等;

FileUtils.java

import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; /**  * @author JL  * @version V1.0  * @Description 文件操作工具类  * @date 2019/06/14  */ public class FileUtils {     private static final String ENCODING = "UTF-8";     public static boolean createFile(String filePath){         File file = new File(filePath);         try{             if (file.exists()){                 return true;             }             File parentFile = file.getParentFile();             if (parentFile != null && parentFile.exists()){                 return file.createNewFile();             }             if (new File(file.getParent()).mkdirs()){                 return file.createNewFile();             }         }catch(IOException e){             e.printStackTrace();         }         return false;     }     public static String readLine(String filePath, String encoding) {         try {             return org.apache.commons.io.FileUtils.readFileToString(new File(filePath), encoding);         } catch (IOException e) {             e.printStackTrace();         }         return "";     }     public static List<String> readLines(String filePath) {         return readLines(filePath,ENCODING);     }     public static List<String> readLines(String filePath, String encoding) {         try {             return org.apache.commons.io.FileUtils.readLines(new File(filePath), encoding);         } catch (IOException e) {             e.printStackTrace();         }         return null;     }     //分页读取文本内容     public static List<String> readPageLines(String filePath, String encoding, int startRow, int endRow) {         List<String> lines = readLines(filePath, encoding);         if (lines != null && lines.size()> endRow) {             return lines.subList(startRow, endRow);         }         return lines;     }     public static boolean copyFile(String srcPath, String targetPath) {         try {             org.apache.commons.io.FileUtils.copyFile(new File(srcPath), new File(targetPath));             return true;         } catch (IOException e) {             e.printStackTrace();         }         return false;     }     public static boolean moveFile(String srcPath, String targetPath) {         try {             org.apache.commons.io.FileUtils.moveFile(new File(srcPath), new File(targetPath));             return true;         } catch (IOException e) {             e.printStackTrace();         }         return false;     }     public static boolean appendFile(String filePath, String content) {         try {             org.apache.commons.io.FileUtils.write(new File(filePath),content, ENCODING , true);             return true;         } catch (IOException e) {             e.printStackTrace();         }         return false;     }     public static boolean appendFile(String filePath, String ... contents) {         return appendFile(filePath, Arrays.asList(contents));     }     public static boolean appendFile(String filePath, Collection<?> lines) {         if (lines != null){             try {                 org.apache.commons.io.FileUtils.writeLines(new File(filePath),lines, ENCODING, true);                 return true;             } catch (IOException e) {                 e.printStackTrace();             }         }         return false;     }     public static boolean remove(String filePath){         return org.apache.commons.io.FileUtils.deleteQuietly(new File(filePath));     }     public static boolean changeFileName(String filePath, String newFileName){         return copyFile(filePath, new File(filePath).getParent() + File.separatorChar + newFileName);     }     //将文件拆分多个     public static boolean splitFile(String filePath, int size){         if (size <= 0){             return false;         }         File file = new File(filePath);         long length = file.length();         if (length < size){             return false;         }         int byteSize  = (int)(length / (long) size);//均值         int mSize = (int)(length % (long) size);//取余         String fileName = file.getName();         String newFileName = fileName.substring(0,fileName.lastIndexOf("."));         String fileSuffix = filePath.substring(filePath.lastIndexOf("."));         System.out.println("fileName:"+fileName+",fileLength:"+length+",size:"+ size +",byteSize:"+byteSize+",mSize:"+mSize);         RandomAccessFile raf = null;         OutputStream os;         try {             for (int i=0;i<size;i++){                 if (i == (size -1)){                     byteSize += mSize;//将剩余加到最后一个文件里                 }                 System.out.println("i="+i+",byteSize:"+byteSize);                 raf = new RandomAccessFile(file, "r");                 raf.seek(i * byteSize);                 byte [] b = new byte[byteSize];                 int s = raf.read(b);                 if (s > 0) {                     os = new FileOutputStream(file.getParent() + File.separatorChar + newFileName + i + fileSuffix);                     os.write(b);                     os.flush();                     os.close();                 }             }             return true;         }catch(IOException ioe) {             ioe.printStackTrace();         }finally{             if (raf != null) {                 try {                     raf.close();                 } catch (IOException ioe) {                 }             }         }         return false;     }     //获取目录下所有文件(含所有子目录下的文件)     public static List<String> fileList(String fileDir){         File file = new File(fileDir);         if (!file.exists()){             return null;         }         List<String> fileList = new ArrayList<>();         (new FileInterface(){             @Override             public void find(File fFile) {                 File [] files = null;                 if (fFile.isDirectory() && (files = fFile.listFiles()) != null){                     for (File f : files) {                         find(f);                     }                 }else {                     fileList.add(fFile.getPath());                 }             }         }).find(file);         fileList.forEach(f-> System.out.println(f));         return fileList;     }     interface FileInterface{         void find(File fFile);     }     public static void main(String[] args) { //        changeFileName("D:\\test\\test.txt","new.txt"); //        splitFile("D:\\test\\test.txt",3); //        moveFile("D:\\test\\test.txt","F:\\test\\test.txt"); //        createFile("D:\\test\\ab\\11\\test.txt");         fileList("D:\\test");     } }

说明:

做过项目的人都知道,很多写过的可重复利用的代码块或有用的工具类没有怎么整理,当需要的时候,又得打开项目查找一翻,虽然功能开发不难,但是又得花时间成本去写去测试,这样的重复造轮子的事情太多次了;因此不如把轮子保留,供大家一起使用;

看完上述内容,你们掌握JAVA文件操作工具类是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI