java 常用工具类 (值得收藏)

简介: java 常用工具类 (值得收藏)
package org.fh.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 说明:常用工具
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class Tools {
  /**
   * 随机生成六位数验证码 
   * @return
   */
  public static int getRandomNum(){
     Random r = new Random();
     return r.nextInt(900000)+100000;//(Math.random()*(999999-100000)+100000)
  }
  /**
   * 随机生成四位数验证码 
   * @return
   */
  public static int getRandomNum4(){
     Random r = new Random();
     return r.nextInt(9000)+1000;
  }
  /**
   * 随机生成两位数验证码 
   * @return
   */
  public static int getRandomNum2(){
     Random r = new Random();
     return r.nextInt(90)+10;
  }
  /**
   * 检测字符串是否不为空(null,"","null")
   * @param s
   * @return 不为空则返回true,否则返回false
   */
  public static boolean notEmpty(String s){
    return s!=null && !"".equals(s) && !"null".equals(s);
  }
  /**
   * 检测字符串是否为空(null,"","null")
   * @param s
   * @return 为空则返回true,不否则返回false
   */
  public static boolean isEmpty(String s){
    return s==null || "".equals(s) || "null".equals(s);
  }
  /**
   * 字符串转换为字符串数组
   * @param str 字符串
   * @param splitRegex 分隔符
   * @return
   */
  public static String[] str2StrArray(String str,String splitRegex){
    if(isEmpty(str)){
      return null;
    }
    return str.split(splitRegex);
  }
  /**
   * 用默认的分隔符(,)将字符串转换为字符串数组
   * @param str 字符串
   * @return
   */
  public static String[] str2StrArray(String str){
    return str2StrArray(str,",\\s*");
  }
  /**
   * 往文件里的内容
   * @param filePath  文件路径
   * @param content  写入的内容
   */
  public static void writeFile(String fileP,String content){
    String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../";  //项目路径
    filePath = filePath.replaceAll("file:/", "");
    filePath = filePath.replaceAll("%20", " ");
    filePath = filePath.trim() + fileP.trim();
    if(filePath.indexOf(":") != 1){
      filePath = File.separator + filePath;
    }
    try {
          OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");      
          BufferedWriter writer=new BufferedWriter(write);          
          writer.write(content);      
          writer.close(); 
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * 往文件里的内容(Projectpath下)
   * @param filePath  文件路径
   * @param content  写入的内容
   */
  public static void writeFileCR(String fileP,String content){
    String filePath = PathUtil.getProjectpath() + fileP;
    try {
          OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");      
          BufferedWriter writer=new BufferedWriter(write);          
          writer.write(content);      
          writer.close(); 
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
    * 验证邮箱
    * @param email
    * @return
    */
   public static boolean checkEmail(String email){
    boolean flag = false;
    try{
      String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
      Pattern regex = Pattern.compile(check);
      Matcher matcher = regex.matcher(email);
      flag = matcher.matches();
     }catch(Exception e){
      flag = false;
     }
    return flag;
   }
   /**
    * 验证手机号码
    * @param mobiles
    * @return
    */
   public static boolean checkMobileNumber(String mobileNumber){
    boolean flag = false;
    try{
      Pattern regex = Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$");
      Matcher matcher = regex.matcher(mobileNumber);
      flag = matcher.matches();
     }catch(Exception e){
      flag = false;
     }
    return flag;
   }
  /**
   * 检测KEY是否正确
   * @param paraname  传入参数
   * @param FKEY    接收的 KEY
   * @return 为空则返回true,不否则返回false
   */
  public static boolean checkKey(String paraname, String FKEY){
    paraname = (null == paraname)? "":paraname;
    return MD5.md5(paraname+DateUtil.getDays()+",fh,").equals(FKEY);
  }
  /**读取txt里的全部内容
   * @param fileP  文件路径
   * @param encoding  编码
   * @return
   */
  public static String readTxtFileAll(String fileP, String encoding) {
    StringBuffer fileContent = new StringBuffer(); 
    try {
      String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../";  //项目路径
      filePath = filePath.replaceAll("file:/", "");
      filePath = filePath.replaceAll("%20", " ");
      filePath = filePath.trim() + fileP.trim();
      if(filePath.indexOf(":") != 1){
        filePath = File.separator + filePath;
      }
      File file = new File(filePath);
      if (file.isFile() && file.exists()) {     // 判断文件是否存在
        InputStreamReader read = new InputStreamReader(
        new FileInputStream(file), encoding); // 考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while ((lineTxt = bufferedReader.readLine()) != null) {
          fileContent.append(lineTxt);
          fileContent.append("\n");
        }
        read.close();
      }else{
        System.out.println("找不到指定的文件,查看此路径是否正确:"+filePath);
      }
    } catch (Exception e) {
      System.out.println("读取文件内容出错");
    }
    return fileContent.toString();
  }
  /**
   * 读取Projectpath某文件里的全部内容
   * @param filePath  文件路径
   */
  public static String readFileAllContent(String fileP) {
    StringBuffer fileContent = new StringBuffer(); 
    try {
      String encoding = "utf-8";
      File file = new File(PathUtil.getProjectpath() + fileP);//文件路径
      if (file.isFile() && file.exists()) {     // 判断文件是否存在
        InputStreamReader read = new InputStreamReader(
        new FileInputStream(file), encoding); // 考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while ((lineTxt = bufferedReader.readLine()) != null) {
          fileContent.append(lineTxt);
          fileContent.append("\n");
        }
        read.close();
      }else{
        System.out.println("找不到指定的文件,查看此路径是否正确:"+fileP);
      }
    } catch (Exception e) {
      System.out.println("读取文件内容出错");
    }
    return fileContent.toString();
  }
  public static void main(String[] args) {
    System.out.println(getRandomNum());
  }
}

 

目录
相关文章
|
25天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
36 6
|
12天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
36 17
|
4天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
8天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
9天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
20 2
|
13天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
17天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
17天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
17天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
21 3
|
20天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
21 5