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方式) 框架基础上 ...
随机推荐
- Java 设计模式系列(二)简单工厂模式和工厂方法模式
Java 设计模式系列(二)简单工厂模式和工厂方法模式 实现了创建者和调用者的分离.分为:简单工厂模式.工厂方法模式.抽象工厂模式 简单工厂模式.工厂方法模式都很简单,就不详细介绍了. 一.简单工厂 ...
- android屏幕页面实现滚动,页面跳转
在 在LinearLayout外面包一层ScrollView即可,如下代码 Apidemo 中关于如何使用ScrollView说明,请参考:<ScrollView xmlns:android=& ...
- Webservice初级问题: FAILED TO READ WSDL document
这个问题是说明,这个版本的没法下载 犯错的图样 处理方法一: 将网页上xml文档下载,保存在本地,然后错误提示的这几行删除,保存文档,然后从本地调用 (1)右键另存为 保存为文件名a.xml (2)打 ...
- thinkphp5 swoole 执行异步任务
目录结构: 服务器端: <?php /* *author:hdj */ namespace app\Console; use think\console\Command; use think\c ...
- 一款好用的js插件及工具包
笔记:需要源码私信 script文件夹 script下的目录文件: 使用的效果,解决ie兼容性问题,好处多多!慢慢参考! 具体用法: 前端引入js,写必须要的js脚本! <script src= ...
- CentOS 7.4 shell 不显示当前用户和路径的问题
步骤如下: vim ~/.bash_profile (不用管.bash_profile这个文件有几个,自己新建一个也是可以的) 在最后加上 export PS1='[\u@\h \W]\$' ...
- delphi Overload 和override的区别
overload是重载;相同的函数名,参数不同,使用不同的函数体 override 是对父类声明的vitural或dynamic方法进行覆盖 overload的使用方法: [delphi] v ...
- Python学习-10.Python函数定义(二)
在Python中定义函数的时候,可以使用参数默认值的方式定义函数 例子: def welcome(who,state='is',action='talking'): print(who,state,a ...
- Postgres-XL9.5r1.6 搭建
Postgres-XL9.5r1.6 安装部署1,环境准备 关闭防护墙 关闭selinux 下载依赖 yum install -y flex bison readline-devel zlib-dev ...
- LINQ to Entity里面不能使用DateTime
LINQ中不能直接使用DateTime,否则会报错:‘The specified type member 'Date' is not supported in LINQ to Entities. On ...