1.Util介绍
Util是工具的意思,一般来说,常常用来描述和业务逻辑没有关系的数据处理。
Util一般要和私有方法对比:私有方法一般来说是只是在特地场景下使用的,私有方法越多,代码结构越乱。常见的重构策略就是首先从一个很多行数的代码里抽象出若干个私有方法,然后再抽出公用的Util。
如果有可能,尽可能的少用私有方法,而是把他换成一个公用的Util,代表他和业务逻辑是不相关的。通常命名也是ArticleUtil,CommentUtil之类的。
Util一般来说,就是一个明确的输入和一个明确的输出结果。单元测试中,多数也是来测试Util。
积累好自己的Util是一件很重要的事儿。
2.各种实用Util汇总
(1)String转ArrayList
StringToArrayListUtil.java
import java.util.ArrayList; public class StringToArrayListUtil { public static ArrayList<String> stringToArrayList(String str) { //1.String.substring() 从指定位置开始到指定位置结束截取字符串 String strTemp=str.substring(1,str.length()-1); //2.String.split() 字符串拆分 String[] strResult=strTemp.split(", "); ArrayList<String> resultList=new ArrayList<>(); for (int i = 0; i <strResult.length ; i++) { resultList.add(strResult[i]); } return resultList; } }
(2)利用InputStream和FileOutputStream实现文件读写(文件的拷贝功能)
import java.io.*; public class FileUtils { public static void main(String[] args) { inputStreamReader(); } public static void inputStreamReader() { //1.创建输入流对象,将流理解为一只笔,输入流为读取数据,输出流为写数据 InputStream inputStream = null; FileOutputStream fos=null; try { //2.实例化输入流对象 inputStream = new FileInputStream("E:\javaProject\javaSEProject\UtilSummary\res\novel.txt"); //3.将读取的内容写入指定的文件夹的文件中 //4.定义输出流的目标文件 File file=new File("E:\javaProject\javaSEProject\UtilSummary\res\novel_copy1.txt"); //5.实例化输出流对象 fos = new FileOutputStream(file); //6.指定每次读取文件的大小 byte[] bs = new byte[1024]; int temp=-1; while ((temp=inputStream.read(bs))!=-1){ //7,向指定目标文件写数据 fos.write(bs,0,temp); } } catch (Exception e) { e.printStackTrace(); }finally { try { //8.inputStream、fos不为空,则关闭文件流 if (inputStream != null&&fos!=null) { inputStream.close(); fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
(3)读取json文件,返回json串
import com.alibaba.fastjson.JSONObject; import java.io.*; import java.util.HashMap; import java.util.Map; public class JsonUtil { /** * 读取json文件,返回json串 * @param fileName * @return */ public static String readJsonFile(String fileName) { String jsonStr = ""; try { File jsonFile = new File(fileName); FileReader fileReader = new FileReader(jsonFile); Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8"); int ch = 0; StringBuffer sb = new StringBuffer(); while ((ch = reader.read()) != -1) { sb.append((char) ch); } fileReader.close(); reader.close(); jsonStr = sb.toString(); return jsonStr; } catch (IOException e) { e.printStackTrace(); return null; } } public static void main(String[] args) { //注意:所要读取的文件路径为res/categories.json String jsonStr = JsonUtil.readJsonFile("C:\jsonfile\categories.json"); JSONObject jsonObject = new JSONObject(); Map<String, String> params = new HashMap<>(); params.put("Result", jsonStr); jsonObject.put("params", params); System.out.println(jsonObject.toString()); } }