小言_互联网的博客

Java常用工具类汇总(附代码示例)

413人阅读  评论(0)

一、FileUtils


  
  1. private static void fileUtilsTest() {
  2. try {
  3. //读取文件内容
  4. String readFileToString = FileUtils.readFileToString( new File( "D:\\guor\\data\\test20211022000000.txt"));
  5. System.out.println(readFileToString);
  6. //删除文件夹
  7. FileUtils.deleteDirectory( new File( "D:\\guor1\\data1"));
  8. FileUtils.deleteQuietly( new File( "D:\\guor\\data"));
  9. //清空文件夹
  10. FileUtils.cleanDirectory( new File( "D:\\guor\\data"));
  11. //判断文件内容是否一致
  12. boolean contentEquals = FileUtils.contentEquals( new File( "D:\\guor\\data\\test20211022000000.txt"), new File( "D:\\guor\\data\\testNew20211021000000.txt"));
  13. boolean contentEquals2 = FileUtils.contentEquals( new File( "D:\\guor\\data\\中文20211021100000.txt"), new File( "D:\\guor\\data\\中文New20211022100000.txt"));
  14. System.out.println(contentEquals+ ","+contentEquals2);
  15. //拷贝特定类型的文件
  16. FileUtils.copyDirectory( new File( "D:\\guor\\data"), new File( "D:\\guor\\data2"), new FileFilter() {
  17. @Override
  18. public boolean accept(File pathname) {
  19. if(pathname.getName().startsWith( "test")) {
  20. return true;
  21. }
  22. return false;
  23. }
  24. });
  25. FileUtils.moveDirectory( new File( "D:\\guor\\data"), new File( "D:\\guor\\data3"));
  26. FileUtils.moveFileToDirectory( new File( "D:\\guor\\data"), new File( "D:\\guor\\data3"), true);
  27. FileUtils.moveToDirectory( new File( "D:\\guor\\data"), new File( "D:\\guor\\data4"), true);
  28. boolean directoryContains = FileUtils.directoryContains( new File( "D:\\guor\\data"), new File( "D:\\guor\\data\\test20211022000000.txt"));
  29. System.out.println(directoryContains);
  30. directoryContains = FileUtils.directoryContains( new File( "D:\\guor\\data"), new File( "*.txt"));
  31. System.out.println(directoryContains);
  32. //获取某文件夹下特定格式文件
  33. File[] listFiles = new File( "D:\\guor\\data").listFiles( new FilenameFilter() {
  34. @Override
  35. public boolean accept(File dir, String name) {
  36. return name.startsWith( "test");
  37. }
  38. });
  39. System.out.println(Arrays.toString(listFiles));
  40. //获取系统temp文件夹路径
  41. File tempDirectory = FileUtils.getTempDirectory();
  42. System.out.println(tempDirectory);
  43. //获取系统用户文件夹路径
  44. File userDirectory = FileUtils.getUserDirectory();
  45. System.out.println(userDirectory);
  46. //查看是否是新建的文件夹
  47. SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmss" );
  48. Date parse = sdf.parse( "20210206134900");
  49. boolean fileNewer = FileUtils.isFileNewer( new File( "D:\\guor\\data"), parse);
  50. System.out.println(fileNewer);
  51. //更新文件修改时间,如果不存在,则新建;
  52. FileUtils.touch( new File( "D:\\guor\\data\\test20211022000000.txt"));
  53. //延迟查看文件是否存在
  54. boolean waitFor = FileUtils.waitFor( new File( "D:\\guor\\data\\testNew20211021000000.txt"), 5);
  55. System.out.println(waitFor);
  56. } catch (Exception e) {
  57. System.out.println(e);
  58. }
  59. }

  
  1. //根据文件修改时间排序
  2. public static void test02() {
  3. String dir = "D:\\data";
  4. File[] listFiles = new File(dir).listFiles();
  5. List<File> asList = Arrays.asList(listFiles);
  6. for(File file:listFiles) {
  7. System.out.println(file);
  8. }
  9. Collections.sort(asList, new Comparator<File>() {
  10. @Override
  11. public int compare(File o1, File o2) {
  12. if(o1.lastModified()<o2.lastModified()) {
  13. return - 1;
  14. } else if(o1.lastModified()>o2.lastModified()) {
  15. return 1;
  16. } else {
  17. return 0;
  18. }
  19. }
  20. });
  21. System.out.println( "sort...");
  22. for(File file:listFiles) {
  23. System.out.println(file+ ","+file.lastModified());
  24. }
  25. }

二、StringUtil


  
  1. private static void stringUtilsTest() {
  2. String str = "hello world";
  3. //将第一个字符大写
  4. String capitalize = StringUtils.capitalize(str);
  5. System.out.println(capitalize); //Hello
  6. //两边空格补齐
  7. String center = StringUtils.center(str, 7);
  8. System.out.println(center); // hello
  9. String center = StringUtils.center(str, 7, "*");
  10. System.out.println(center); //*hello*
  11. //chomp剔除字符串最后一个是\n或\r\或\r\n
  12. String chomp = StringUtils.chomp(str);
  13. System.out.println(chomp);
  14. //chop剔除字符串最后一个字符(如果最后一个是\n或\r\或\r\n也剔除掉)
  15. String chop = StringUtils.chop(str);
  16. System.out.println(chop); //hello worl
  17. //是否包含任意字符
  18. boolean containsAny = StringUtils.containsAny(str, "W");
  19. System.out.println(containsAny);
  20. //是否包含任意字符,忽略大小写
  21. containsAny = StringUtils.containsIgnoreCase(str, "W");
  22. System.out.println(containsAny);
  23. //有意思
  24. int indexOfAnyBut = StringUtils.indexOfAnyBut(str, "hello orld");
  25. System.out.println(indexOfAnyBut);
  26. //两个字符串从第几位开始不同
  27. int indexOfDifference = StringUtils.indexOfDifference(str, str);
  28. System.out.println(indexOfDifference);
  29. indexOfDifference = StringUtils.indexOfDifference(str, str+ "zs");
  30. System.out.println(indexOfDifference);
  31. indexOfDifference = StringUtils.indexOfDifference(str, "he llo");
  32. System.out.println(indexOfDifference);
  33. //判断是否是正整数
  34. boolean isNumeric = StringUtils.isNumeric(str);
  35. System.out.println(isNumeric); //false
  36. isNumeric = StringUtils.isNumeric( "1234dd");
  37. System.out.println( "1234dd:"+isNumeric); //false
  38. isNumeric = StringUtils.isNumeric( "1234 ");
  39. System.out.println( "1234 :"+isNumeric); //false
  40. isNumeric = StringUtils.isNumeric( "1.234");
  41. System.out.println( "1.234:"+isNumeric); //false
  42. isNumeric = StringUtils.isNumeric( "1234");
  43. System.out.println( "1234:" + isNumeric); //true
  44. isNumeric = StringUtils.isNumeric( "-1234");
  45. System.out.println( "-1234:" + isNumeric); //false
  46. //判断是否是正整数或空格
  47. boolean isNumeric = StringUtils.isNumericSpace(str);
  48. //将数组变为字符串,并添加字符进行分割
  49. Object[] array = new Object[] { "zs", 18, "男", 666, 777};
  50. String join = StringUtils.join(array);
  51. System.out.println(Arrays.toString(array));
  52. join = StringUtils.join(array, "*");
  53. System.out.println(join);
  54. Object[] array = new Object[] { "zs", 18, "男", 666, 777};
  55. String join = StringUtils.join(array, ";", 2, 5);
  56. System.out.println(join);
  57. String remove = StringUtils.remove(str, "hello");
  58. System.out.println(remove); // world
  59. String repeat = StringUtils.repeat(str, 3);
  60. System.out.println(repeat); //hello worldhello worldhello world
  61. repeat = StringUtils.repeat(str, ",", 3);
  62. System.out.println(repeat); //hello world,hello world,hello world
  63. //分别替换
  64. String[] list = new String[] { "hello", "girl"};
  65. String[] replacementList = new String[] { "say", "woman"};
  66. String str2 = "hello world,hello boy,hello girl.";
  67. String replaceEach = StringUtils.replaceEach(str2, list, replacementList);
  68. System.out.println(replaceEach); //say world,say boy,say woman.
  69. //只替换第一个匹配的字符串
  70. String replaceOnce = StringUtils.replaceOnce( "hello world,hello boy,hello girl.", "hello", "say");
  71. System.out.println(replaceOnce); //say world,hello boy,hello girl.
  72. //截取某字符后面的部分
  73. String substringAfterLast = StringUtils.substringAfterLast( "hello world,hello boy,hello girl.", " ");
  74. System.out.println(substringAfterLast); //girl.
  75. String substringBeforeLast = StringUtils.substringBeforeLast( "hello world,hello boy,hello girl.", " ");
  76. System.out.println(substringBeforeLast); //hello world,hello boy,hello
  77. }

三、CollectionUtils


  
  1. private static void collectionUtilsTest() {
  2. List<String> list = new ArrayList<String>();
  3. list.add( "zhangsan");
  4. list.add( "dalian");
  5. list.add( "gateway");
  6. list.add( "gateway");
  7. list.add( "28");
  8. list.add( "35");
  9. //查找第一个符合条件的元素
  10. Object find = CollectionUtils.find(list, new Predicate() {
  11. @Override
  12. public boolean evaluate(Object arg0) {
  13. if(StringUtils.isNumeric(arg0.toString())) {
  14. return false;
  15. }
  16. return true;
  17. }
  18. });
  19. //排除不符合条件的元素
  20. Collection select = CollectionUtils.select(list, new Predicate() {
  21. @Override
  22. public boolean evaluate(Object arg0) {
  23. if(StringUtils.isNumeric(arg0.toString())) {
  24. return false;
  25. }
  26. return true;
  27. }
  28. });
  29. System.out.println(list); //[zhangsan, dalian, 28]
  30. System.out.println(find); //zhangsan
  31. System.out.println(select); //[zhangsan, dalian]
  32. List<String> list2 = new ArrayList<String>();
  33. list2.add( "zhangsan");
  34. list2.add( "dalian2");
  35. list2.add( "282");
  36. //查看两个集合中是否有相同的元素
  37. boolean containsAny = CollectionUtils.containsAny(list, list2);
  38. System.out.println(containsAny); //true
  39. //查找集合中某元素的个数
  40. int countMatches = CollectionUtils.countMatches(list, new Predicate() {
  41. @Override
  42. public boolean evaluate(Object arg0) {
  43. if(StringUtils.isNumeric(arg0.toString())) {
  44. return true;
  45. }
  46. return false;
  47. }
  48. });
  49. System.out.println(countMatches);
  50. //查找集合中是否存在某元素
  51. boolean exists = CollectionUtils.exists(list, new Predicate() {
  52. @Override
  53. public boolean evaluate(Object arg0) {
  54. if(StringUtils.isNumeric(arg0.toString())) {
  55. return true;
  56. }
  57. return false;
  58. }
  59. });
  60. System.out.println(exists);
  61. //删除集合中的某些元素
  62. System.out.println(list); //[zhangsan, dalian, 打法, 28, 35]
  63. CollectionUtils.filter(list, new Predicate() {
  64. @Override
  65. public boolean evaluate(Object arg0) {
  66. if(StringUtils.isNumeric(arg0.toString())) {
  67. return false;
  68. }
  69. return true;
  70. }
  71. });
  72. System.out.println(list); //[zhangsan, dalian, 打法]
  73. //查找集合中符合条件的第一个元素
  74. Object find = CollectionUtils.find(list, new Predicate() {
  75. @Override
  76. public boolean evaluate(Object arg0) {
  77. if(StringUtils.isNumeric(arg0.toString())) {
  78. return false;
  79. }
  80. return true;
  81. }
  82. });
  83. System.out.println(find); //zhangsan
  84. //闭包回调函数
  85. System.out.println(list);
  86. CollectionUtils.forAllDo(list, new Closure() {
  87. @Override
  88. public void execute(Object arg0) {
  89. if(StringUtils.isNumeric(arg0.toString())) {
  90. work(arg0);
  91. }
  92. }
  93. });
  94. System.out.println(list);
  95. //查找集合中元素的个数
  96. System.out.println(list); //[zhangsan, dalian, gateway, gateway, 28, 35]
  97. Map cardinalityMap = CollectionUtils.getCardinalityMap(list);
  98. System.out.println(cardinalityMap); //{35=1, 28=1, zhangsan=1, dalian=1, gateway=2}
  99. //查找两个集合中的相同元素
  100. List<String> list2 = new ArrayList<String>();
  101. list2.add( "lisi");
  102. list2.add( "beijing");
  103. list2.add( "gateway");
  104. list.add( "19");
  105. Collection intersection = CollectionUtils.intersection(list, list2);
  106. System.out.println(intersection);
  107. //获取两个List<Map<String, Object>>中相同的部分,可以用于对比两个库中的相同表数据是否相等
  108. List<Map<String, Object>> list3 = new ArrayList<Map<String,Object>>();
  109. List<Map<String, Object>> list4 = new ArrayList<Map<String,Object>>();
  110. Map<String, Object> map1 = new HashMap<String, Object>();
  111. map1.put( "name", "zhangsan");
  112. map1.put( "age", 18);
  113. map1.put( "address", "dalian");
  114. Map<String, Object> map2 = new HashMap<String, Object>();
  115. map2.put( "name", "张三");
  116. map2.put( "age", "十八");
  117. map2.put( "address", "大连");
  118. list3.add(map1);
  119. list3.add(map2);
  120. Map<String, Object> map3 = new HashMap<String, Object>();
  121. map3.put( "name", "李四");
  122. map3.put( "age", "十八");
  123. map3.put( "address", "大连");
  124. list4.add(map2);
  125. list4.add(map1);
  126. list3.add(map3);
  127. System.out.println(list3);
  128. System.out.println(list4);
  129. Collection intersection = CollectionUtils.intersection(list3, list4);
  130. System.out.println(intersection); //[{address=dalian, name=zhangsan, age=18}]
  131. //判断两个集合是否相同
  132. boolean equalCollection = CollectionUtils.isEqualCollection(list3, list4);
  133. System.out.println(equalCollection);
  134. 判断param2是否包含param1,且不能完全相同
  135. System.out.println(list3); //[{address=dalian, name=zhangsan, age=18}, {address=大连, name=张三, age=十八}, {address=大连, name=李四, age=十八}]
  136. System.out.println(list4); //[{address=大连, name=张三, age=十八}, {address=dalian, name=zhangsan, age=18}]
  137. boolean properSubCollection = CollectionUtils.isProperSubCollection(list4, list3);
  138. System.out.println(properSubCollection); //true
  139. //断定某集合是否含有某元素,如果包含则抛异常(我觉得应该少用为妙)
  140. System.out.println(list); //[zhangsan, dalian, gateway, gateway, 28, 35]
  141. Collection predicatedCollection = CollectionUtils.predicatedCollection(list, new Predicate() {
  142. @Override
  143. public boolean evaluate(Object object) {
  144. if(StringUtils.isNumeric(object.toString())) {
  145. return false;
  146. }
  147. return true;
  148. }
  149. });
  150. System.out.println(predicatedCollection); //Exception in thread "main" java.lang.IllegalArgumentException: Cannot add Object '28' - Predicate rejected it
  151. List<String> list2 = new ArrayList<String>();
  152. list2.add( "gateway");
  153. System.out.println(list);
  154. System.out.println(list2);
  155. //删除list1中的list2
  156. Collection removeAll = CollectionUtils.removeAll(list, list2);
  157. System.out.println(removeAll);
  158. //反转数组
  159. String[] array = new String[] { "zs", "ls", "ww"};
  160. System.out.println(StringUtils.join(array, ",")); //zs,ls,ww
  161. CollectionUtils.reverseArray(array);
  162. System.out.println(StringUtils.join(array, ",")); //ww,ls,zs
  163. 删除list1中的list2
  164. List<String> list2 = new ArrayList<String>();
  165. list2.add( "zhangsan");
  166. list2.add( "dalian");
  167. Collection subtract = CollectionUtils.subtract(list, list2);
  168. System.out.println(subtract);
  169. //更改集合中的特定值
  170. Collection collect = CollectionUtils.collect(list, new Transformer() {
  171. @Override
  172. public Object transform(Object arg0) {
  173. if(StringUtils.isNumeric(arg0.toString())) {
  174. return 15;
  175. }
  176. return arg0;
  177. }
  178. });
  179. System.out.println(list); //[zhangsan, dalian, 28, 35]
  180. System.out.println(collect); //[zhangsan, dalian, 15, 15]
  181. //更改集合中的特定值,改变集合本身
  182. System.out.println(list); //[zhangsan, dalian, gateway, gateway, 28, 35]
  183. CollectionUtils.transform(list, new Transformer() {
  184. @Override
  185. public Object transform(Object input) {
  186. if(StringUtils.isNumeric(input.toString())) {
  187. return 15;
  188. }
  189. return input;
  190. }
  191. });
  192. System.out.println(list); //[zhangsan, dalian, gateway, gateway, 15, 15]
  193. List<String> list2 = new ArrayList<String>();
  194. list2.add( "docker");
  195. list2.add( "zhangsan");
  196. System.out.println(list);
  197. System.out.println(list2);
  198. //将list和list2中的元素合并,但去除list2中的重复元素
  199. Collection union = CollectionUtils.union(list, list2);
  200. System.out.println(union);
  201. }

  
  1. private static void work(Object obj){
  2. System.out.println( "闭包回调函数:我是数字,"+obj);
  3. }

四、ArrayUtils


  
  1. private static void arrayUtilsTest() {
  2. String[] array = new String[] { "zs", "ls"};
  3. //增加元素
  4. Object[] add = ArrayUtils.add(array, "ww");
  5. System.out.println(StringUtils.join(add, ",")); //zs,ls,ww
  6. //合并数组
  7. String[] array2 = new String[] { "ww", "ss"};
  8. Object[] addAll = ArrayUtils.addAll(array1, array2);
  9. System.out.println(StringUtils.join(addAll, ",")); //zs,ls,ww,ss
  10. //克隆数组
  11. Object[] clone = ArrayUtils.clone(array);
  12. System.out.println(StringUtils.join(clone, ",")); //zs,ls
  13. boolean contains = ArrayUtils.contains(array, "ww");
  14. boolean contains1 = ArrayUtils.contains(array, "zs");
  15. System.out.println(contains+ ","+contains1); //false,true
  16. }

 

往期精彩内容:

Java知识体系总结(2021版)

Java多线程基础知识总结(绝对经典)

【全栈最全Java框架总结】SSH、SSM、Springboot

超详细的springBoot学习笔记

常见数据结构与算法整理总结

Java设计模式:23种设计模式全面解析(超级详细)

Java面试题总结(附答案)


转载:https://blog.csdn.net/guorui_java/article/details/115529750
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场