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());
  }
}

 

目录
相关文章
|
3月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
282 83
|
16天前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
167 101
|
16天前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
193 100
|
2月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
300 120
|
4月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
186 35
|
5月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
82 0
|
2月前
|
缓存 安全 Java
Java反射机制:动态操作类与对象
Java反射机制是运行时动态操作类与对象的强大工具,支持获取类信息、动态创建实例、调用方法、访问字段等。它在框架开发、依赖注入、动态代理等方面有广泛应用,但也存在性能开销和安全风险。本文详解反射核心API、实战案例及性能优化策略,助你掌握Java动态编程精髓。
|
2月前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。
|
3月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
95 11