源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java中常用工具类之字符串操作类和MD5加密解密类

  • 时间:2021-09-07 03:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java中常用工具类之字符串操作类和MD5加密解密类
java中常用的工具类之String和MD5加密解密类 我们java程序员在开发项目的是常常会用到一些工具类。今天我分享一下我的两个工具类,大家可以在项目中使用。 [b]一、String工具类[/b]
package com.itjh.javaUtil;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 文件相关操作辅助类。
 * 
 * @author 宋立君
 * @date 2014年06月24日
 */
public class FileUtil {
 private static final String FOLDER_SEPARATOR = "/";
 private static final char EXTENSION_SEPARATOR = '.';

 /**
  * 功能:复制文件或者文件夹。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  *      源文件
  * @param outputFile
  *      目的文件
  * @param isOverWrite
  *      是否覆盖(只针对文件)
  * @throws IOException
  */
 public static void copy(File inputFile, File outputFile, boolean isOverWrite)
   throws IOException {
  if (!inputFile.exists()) {
   throw new RuntimeException(inputFile.getPath() + "源目录不存在!");
  }
  copyPri(inputFile, outputFile, isOverWrite);
 }

 /**
  * 功能:为copy 做递归使用。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  * @param outputFile
  * @param isOverWrite
  * @throws IOException
  */
 private static void copyPri(File inputFile, File outputFile,
   boolean isOverWrite) throws IOException {
  // 是个文件。
  if (inputFile.isFile()) {
   copySimpleFile(inputFile, outputFile, isOverWrite);
  } else {
   // 文件夹
   if (!outputFile.exists()) {
    outputFile.mkdir();
   }
   // 循环子文件夹
   for (File child : inputFile.listFiles()) {
    copy(child,
      new File(outputFile.getPath() + "/" + child.getName()),
      isOverWrite);
   }
  }
 }

 /**
  * 功能:copy单个文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  *      源文件
  * @param outputFile
  *      目标文件
  * @param isOverWrite
  *      是否允许覆盖
  * @throws IOException
  */
 private static void copySimpleFile(File inputFile, File outputFile,
   boolean isOverWrite) throws IOException {
  // 目标文件已经存在
  if (outputFile.exists()) {
   if (isOverWrite) {
    if (!outputFile.delete()) {
     throw new RuntimeException(outputFile.getPath() + "无法覆盖!");
    }
   } else {
    // 不允许覆盖
    return;
   }
  }
  InputStream in = new FileInputStream(inputFile);
  OutputStream out = new FileOutputStream(outputFile);
  byte[] buffer = new byte[1024];
  int read = 0;
  while ((read = in.read(buffer)) != -1) {
   out.write(buffer, 0, read);
  }
  in.close();
  out.close();
 }

 /**
  * 功能:删除文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param file
  *      文件
  */
 public static void delete(File file) {
  deleteFile(file);
 }

 /**
  * 功能:删除文件,内部递归使用
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param file
  *      文件
  * @return boolean true 删除成功,false 删除失败。
  */
 private static void deleteFile(File file) {
  if (file == null || !file.exists()) {
   return;
  }
  // 单文件
  if (!file.isDirectory()) {
   boolean delFlag = file.delete();
   if (!delFlag) {
    throw new RuntimeException(file.getPath() + "删除失败!");
   } else {
    return;
   }
  }
  // 删除子目录
  for (File child : file.listFiles()) {
   deleteFile(child);
  }
  // 删除自己
  file.delete();
 }

 /**
  * 从文件路径中抽取文件的扩展名, 例如. "mypath/myfile.txt" -> "txt". * @author 宋立君
  * 
  * @date 2014年06月24日
  * @param 文件路径
  * @return 如果path为null,直接返回null。
  */
 public static String getFilenameExtension(String path) {
  if (path == null) {
   return null;
  }
  int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);
  if (extIndex == -1) {
   return null;
  }
  int folderIndex = path.lastIndexOf(FOLDER_SEPARATOR);
  if (folderIndex > extIndex) {
   return null;
  }
  return path.substring(extIndex + 1);
 }

 /**
  * 从文件路径中抽取文件名, 例如: "mypath/myfile.txt" -> "myfile.txt"。 * @author 宋立君
  * 
  * @date 2014年06月24日
  * @param path
  *      文件路径。
  * @return 抽取出来的文件名, 如果path为null,直接返回null。
  */
 public static String getFilename(String path) {
  if (path == null) {
   return null;
  }
  int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);
  return (separatorIndex != -1 ? path.substring(separatorIndex + 1)
    : path);
 }

 /**
  * 功能:保存文件。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param content
  *      字节
  * @param file
  *      保存到的文件
  * @throws IOException
  */
 public static void save(byte[] content, File file) throws IOException {
  if (file == null) {
   throw new RuntimeException("保存文件不能为空");
  }
  if (content == null) {
   throw new RuntimeException("文件流不能为空");
  }
  InputStream is = new ByteArrayInputStream(content);
  save(is, file);
 }

 /**
  * 功能:保存文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param streamIn
  *      文件流
  * @param file
  *      保存到的文件
  * @throws IOException
  */
 public static void save(InputStream streamIn, File file) throws IOException {
  if (file == null) {
   throw new RuntimeException("保存文件不能为空");
  }
  if (streamIn == null) {
   throw new RuntimeException("文件流不能为空");
  }
  // 输出流
  OutputStream streamOut = null;
  // 文件夹不存在就创建。
  if (!file.getParentFile().exists()) {
   file.getParentFile().mkdirs();
  }
  streamOut = new FileOutputStream(file);
  int bytesRead = 0;
  byte[] buffer = new byte[8192];
  while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
   streamOut.write(buffer, 0, bytesRead);
  }
  streamOut.close();
  streamIn.close();
 }
}
[b]二、MD5工具类[/b]
package com.itjh.javaUtil;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 文件相关操作辅助类。
 * 
 * @author 宋立君
 * @date 2014年06月24日
 */
public class FileUtil {
 private static final String FOLDER_SEPARATOR = "/";
 private static final char EXTENSION_SEPARATOR = '.';

 /**
  * 功能:复制文件或者文件夹。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  *      源文件
  * @param outputFile
  *      目的文件
  * @param isOverWrite
  *      是否覆盖(只针对文件)
  * @throws IOException
  */
 public static void copy(File inputFile, File outputFile, boolean isOverWrite)
   throws IOException {
  if (!inputFile.exists()) {
   throw new RuntimeException(inputFile.getPath() + "源目录不存在!");
  }
  copyPri(inputFile, outputFile, isOverWrite);
 }

 /**
  * 功能:为copy 做递归使用。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  * @param outputFile
  * @param isOverWrite
  * @throws IOException
  */
 private static void copyPri(File inputFile, File outputFile,
   boolean isOverWrite) throws IOException {
  // 是个文件。
  if (inputFile.isFile()) {
   copySimpleFile(inputFile, outputFile, isOverWrite);
  } else {
   // 文件夹
   if (!outputFile.exists()) {
    outputFile.mkdir();
   }
   // 循环子文件夹
   for (File child : inputFile.listFiles()) {
    copy(child,
      new File(outputFile.getPath() + "/" + child.getName()),
      isOverWrite);
   }
  }
 }

 /**
  * 功能:copy单个文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param inputFile
  *      源文件
  * @param outputFile
  *      目标文件
  * @param isOverWrite
  *      是否允许覆盖
  * @throws IOException
  */
 private static void copySimpleFile(File inputFile, File outputFile,
   boolean isOverWrite) throws IOException {
  // 目标文件已经存在
  if (outputFile.exists()) {
   if (isOverWrite) {
    if (!outputFile.delete()) {
     throw new RuntimeException(outputFile.getPath() + "无法覆盖!");
    }
   } else {
    // 不允许覆盖
    return;
   }
  }
  InputStream in = new FileInputStream(inputFile);
  OutputStream out = new FileOutputStream(outputFile);
  byte[] buffer = new byte[1024];
  int read = 0;
  while ((read = in.read(buffer)) != -1) {
   out.write(buffer, 0, read);
  }
  in.close();
  out.close();
 }

 /**
  * 功能:删除文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param file
  *      文件
  */
 public static void delete(File file) {
  deleteFile(file);
 }

 /**
  * 功能:删除文件,内部递归使用
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param file
  *      文件
  * @return boolean true 删除成功,false 删除失败。
  */
 private static void deleteFile(File file) {
  if (file == null || !file.exists()) {
   return;
  }
  // 单文件
  if (!file.isDirectory()) {
   boolean delFlag = file.delete();
   if (!delFlag) {
    throw new RuntimeException(file.getPath() + "删除失败!");
   } else {
    return;
   }
  }
  // 删除子目录
  for (File child : file.listFiles()) {
   deleteFile(child);
  }
  // 删除自己
  file.delete();
 }

 /**
  * 从文件路径中抽取文件的扩展名, 例如. "mypath/myfile.txt" -> "txt". * @author 宋立君
  * 
  * @date 2014年06月24日
  * @param 文件路径
  * @return 如果path为null,直接返回null。
  */
 public static String getFilenameExtension(String path) {
  if (path == null) {
   return null;
  }
  int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);
  if (extIndex == -1) {
   return null;
  }
  int folderIndex = path.lastIndexOf(FOLDER_SEPARATOR);
  if (folderIndex > extIndex) {
   return null;
  }
  return path.substring(extIndex + 1);
 }

 /**
  * 从文件路径中抽取文件名, 例如: "mypath/myfile.txt" -> "myfile.txt"。 * @author 宋立君
  * 
  * @date 2014年06月24日
  * @param path
  *      文件路径。
  * @return 抽取出来的文件名, 如果path为null,直接返回null。
  */
 public static String getFilename(String path) {
  if (path == null) {
   return null;
  }
  int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);
  return (separatorIndex != -1 ? path.substring(separatorIndex + 1)
    : path);
 }

 /**
  * 功能:保存文件。
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param content
  *      字节
  * @param file
  *      保存到的文件
  * @throws IOException
  */
 public static void save(byte[] content, File file) throws IOException {
  if (file == null) {
   throw new RuntimeException("保存文件不能为空");
  }
  if (content == null) {
   throw new RuntimeException("文件流不能为空");
  }
  InputStream is = new ByteArrayInputStream(content);
  save(is, file);
 }

 /**
  * 功能:保存文件
  * 
  * @author 宋立君
  * @date 2014年06月24日
  * @param streamIn
  *      文件流
  * @param file
  *      保存到的文件
  * @throws IOException
  */
 public static void save(InputStream streamIn, File file) throws IOException {
  if (file == null) {
   throw new RuntimeException("保存文件不能为空");
  }
  if (streamIn == null) {
   throw new RuntimeException("文件流不能为空");
  }
  // 输出流
  OutputStream streamOut = null;
  // 文件夹不存在就创建。
  if (!file.getParentFile().exists()) {
   file.getParentFile().mkdirs();
  }
  streamOut = new FileOutputStream(file);
  int bytesRead = 0;
  byte[] buffer = new byte[8192];
  while ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {
   streamOut.write(buffer, 0, bytesRead);
  }
  streamOut.close();
  streamIn.close();
 }
}
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部