java 实用Util汇总
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());
} }
java 实用Util汇总的更多相关文章
- 史上最全的 Java 新手问题汇总
史上最全的 Java 新手问题汇总 Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿 ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- Java常用英语汇总(面试必备)
Java常用英语汇总(面试必备) abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存 ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- java 日志技术汇总(log4j , Commons-logging,.....)
前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...
- Java编码问题汇总
转自 http://www.blogjava.net/zhangchao/archive/2011/05/26/351051.html Thanks Java编码问题汇总 工作中经常遇到java编码问 ...
- JAVA实用案例之水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- JAVA实用案例之图片水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
随机推荐
- PostgreSQL CPU满(100%)性能分析及优化
业务场景:大批量更新时,数据库长时间CPU占用超过90,影响其他正常业务流程,参考阿里云上的一篇文章:https://help.aliyun.com/knowledge_detail/43562.ht ...
- 20155308 2016-2017-2 《Java程序设计》第8周学习总结
20155308 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 NIO与NIO2 NIO(New IO)-from JDK1.4 NIO2 -fr ...
- c+内存管理机制
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的 检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存 ...
- WINSOCK网络函数
1. 头文件及库文件 头文件:WINSOCK2.H 库:WS2_32.LIB库 如果是在WINCE中,不支持SOCK2,所以: 头文件:WINSOCK.H 库:WSOCK32.LIB 如果从MSWSO ...
- nancyfx 自定义路由module
在源码的Nancy.Demo.CustomModule项目示例中 查看UglifiedNancyModule.cs文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- vim出现“E212: Can't open file for writing”的处理办法
在使用vim 对文件或配置进行编辑的时候,在保存时发现当前用户没有写权限.又不想放弃当前编辑的内容,怎么办呢? 来自stackoverflow “For some reason the file yo ...
- Solr特性:Schemaless Mode(自动往Schema中添加field)
WiKi:https://cwiki.apache.org/confluence/display/solr/Schemaless+Mode 介绍: Schemaless Mode is a set o ...
- linux 添加用户到sudo中
步骤 1. 先切到root用户 2. 执行visudo,其实就是修改/etc/sudoers 3. 添加用户,规则如下: youuser ALL=(ALL) ALL %youuser ALL=(ALL ...
- SQL SERVER 查找锁信息
通过系统的存储过程 sp_who 或 sp_who2 可以查找出所有的锁信息, 但是看不出是哪个表, 什么语句 当使用 sp_who 或 sp_who2 查找锁信息的时候, 有个 spid 信息, ...
- 网站图标ICO
效果图: 代码: 1 2 3 4 5 6 <head> ... <link rel="shortcut icon" href="/favicon.i ...