คลาสการเข้ารหัสและถอดรหัสสตริงและ MD5 ที่ใช้กันทั่วไปใน Java
พวกเราโปรแกรมเมอร์ Java มักใช้คลาสเครื่องมือบางอย่างในการพัฒนาโครงการ วันนี้ฉันจะแบ่งปันคลาสเครื่องมือของฉันสองคลาสที่คุณสามารถใช้ในโครงการของคุณ
1. คลาสเครื่องมือสตริง
แพ็คเกจ com.itjh.javaUtil; นำเข้า java.io.ByteArrayInputStream; นำเข้า java.io.File; นำเข้า java.io.FileInputStream; นำเข้า java.io.FileOutputStream; นำเข้า java.io.IOException; นำเข้า java.io.InputStream; นำเข้า java.io.OutputStream;/** * คลาสเสริมสำหรับการดำเนินการที่เกี่ยวข้องกับไฟล์ * * @author Song Lijun* @date 24 มิถุนายน 2014*/public class FileUtil {private static Final String FOLDER_SEPARATOR = "/";private static Final char EXTENSION_SEPARATOR = '.';/** * ฟังก์ชั่น: คัดลอกไฟล์หรือโฟลเดอร์ไฟล์ . * * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2014* @param inputFile * ไฟล์ต้นฉบับ* @param outputFile * ไฟล์ปลายทาง* @param isOverWrite * ไม่ว่าจะเขียนทับ (สำหรับไฟล์เท่านั้น) * @throws IOException */public static void copy (ไฟล์อินพุตไฟล์, ไฟล์เอาต์พุตไฟล์, บูลีน isOverWrite) พ่น IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "The source directory does not existing!");}copyPri(inputFile, outputFile, isOverWrite);}/** * ฟังก์ชั่น: การใช้แบบเรียกซ้ำสำหรับ คัดลอก * * @ผู้เขียน Song Lijun* @วันที่ 24 มิถุนายน 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri (ไฟล์ inputFile, ไฟล์เอาต์พุตไฟล์, บูลีน isOverWrite) พ่น IOException {/ / เป็นไฟล์. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// โฟลเดอร์ if (!outputFile.exists()) {outputFile.mkdir();}// วนลูปโฟลเดอร์ย่อยสำหรับ ( File child : inputFile.listFiles()) {คัดลอก (ลูก ไฟล์ใหม่ (outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * ฟังก์ชั่น: คัดลอกไฟล์เดียว* * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2014* @param inputFile * ไฟล์ต้นฉบับ* @param outputFile * ไฟล์เป้าหมาย * @param isOverWrite * อนุญาตให้เขียนทับหรือไม่ * @throws IOException */private static void copySimpleFile(File inputFile, File outputFile,boolean isOverWrite) พ่น IOException {//ไฟล์เป้าหมายมีอยู่แล้วถ้า (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " ไม่สามารถเขียนทับได้! ");}} else {// ไม่อนุญาตให้เขียนทับ return;}} InputStream ใน = ใหม่ FileInputStream (inputFile); OutputStream out = ใหม่ FileOutputStream (outputFile); ไบต์ [] buffer = ไบต์ใหม่ [1024]; int read = 0; ในขณะที่ ((อ่าน = in.read (บัฟเฟอร์)) ! = -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * ฟังก์ชั่น: ลบไฟล์* * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2557* @param file * file*/public static void Delete(File file) {deleteFile(file);}/** * Function: ลบไฟล์, การใช้แบบเรียกซ้ำภายใน* * @author Song Lijun* @date 2014 มิถุนายน 24 ต.ค. 2559 * @param file * file * @return boolean จริงหากการลบสำเร็จ เท็จหากการลบล้มเหลว */private static void DeleteFile(ไฟล์ไฟล์) {if (ไฟล์ == null || !file.exists()) {return;}//ไฟล์เดี่ยว if (!file.isDirectory()) {boolean delFlag = file.delete ();ถ้า (!delFlag) {throw new RuntimeException(file.getPath() + "การลบล้มเหลว!");} else {return;}}// ลบไดเร็กทอรีย่อยสำหรับ (ไฟล์ย่อย : file.listFiles()) {deleteFile(child);}// ลบตัวเอง file.delete();}/** * แยกนามสกุลไฟล์ออกจากพาธของไฟล์ เช่น "mypath/myfile.txt" -> "txt" * @author Song Lijun* * @date 24 มิถุนายน 2014* @param file path* @return หากพาธเป็นโมฆะ ให้ส่งคืน null โดยตรง * / สาธารณะสตริงคงที่ getFilenameExtension (เส้นทางสตริง) {if (เส้นทาง == null) {return null;} int extIndex = path.lastIndexOf (EXTENSION_SEPARATOR); ถ้า (extIndex == -1) {return null;} int folderIndex = path .lastIndexOf(FOLDER_SEPARATOR);ถ้า (folderIndex > extIndex) {return null;} return path.substring(extIndex + 1);}/** * แยกชื่อไฟล์ออกจากพาธของไฟล์ เช่น "mypath/myfile.txt" -> "myfile.txt" * @ผู้เขียน Song Lijun* * @date 24 มิถุนายน 2014* @param path * เส้นทางไฟล์ * @return ชื่อไฟล์ที่แตกออกมา หากพาธเป็นโมฆะ 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 Song Lijun* @date 24 มิถุนายน 2014* @param content * Bytes* @param file * ไฟล์บันทึกไปที่ * @throws IOException */public static void save (เนื้อหาไบต์ [], ไฟล์ไฟล์) พ่น IOException {if (ไฟล์ == null) {throw new RuntimeException("ไฟล์ที่บันทึกไม่สามารถว่างเปล่า");} if (content == null) {throw new RuntimeException("The file stream never be Empty");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * ฟังก์ชั่น: บันทึกไฟล์* * @author Song Lijun* @date 24 มิถุนายน , 2014 * @param streamIn * สตรีมไฟล์ * ไฟล์ @param * ไฟล์บันทึกไปที่ * @throws IOException */ บันทึกโมฆะคงที่สาธารณะ (InputStream streamIn, ไฟล์ไฟล์) พ่น IOException {ถ้า (ไฟล์ == null) {โยน RuntimeException ใหม่ ("ไฟล์ที่บันทึกไม่สามารถว่างเปล่า");} ถ้า (streamIn == null) {โยน RuntimeException ใหม่ ("สตรีมไฟล์ไม่สามารถว่างเปล่า");}/ /Output Stream OutputStream streamOut = null; //สร้างโฟลเดอร์หากไม่มีอยู่ ถ้า (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = ใหม่ FileOutputStream (ไฟล์);int bytesRead = 0; ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [8192]; ในขณะที่ ((bytesRead = streamIn.read (บัฟเฟอร์ 0, 8192)) != -1) {streamOut.write (บัฟเฟอร์ 0, bytesRead);}streamOut.close();streamIn.close();}}
2. เครื่องมือ MD5
แพ็คเกจ com.itjh.javaUtil; นำเข้า java.io.ByteArrayInputStream; นำเข้า java.io.File; นำเข้า java.io.FileInputStream; นำเข้า java.io.FileOutputStream; นำเข้า java.io.IOException; นำเข้า java.io.InputStream; นำเข้า java.io.OutputStream;/** * คลาสเสริมสำหรับการดำเนินการที่เกี่ยวข้องกับไฟล์ * * @author Song Lijun* @date 24 มิถุนายน 2014*/public class FileUtil {private static Final String FOLDER_SEPARATOR = "/";private static Final char EXTENSION_SEPARATOR = '.';/** * ฟังก์ชั่น: คัดลอกไฟล์หรือโฟลเดอร์ไฟล์ . * * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2014* @param inputFile * ไฟล์ต้นฉบับ* @param outputFile * ไฟล์ปลายทาง* @param isOverWrite * ไม่ว่าจะเขียนทับ (สำหรับไฟล์เท่านั้น) * @throws IOException */public static void copy (ไฟล์อินพุตไฟล์, ไฟล์เอาต์พุตไฟล์, บูลีน isOverWrite) พ่น IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "The source directory does not existing!");}copyPri(inputFile, outputFile, isOverWrite);}/** * ฟังก์ชั่น: การใช้แบบเรียกซ้ำสำหรับ คัดลอก * * @ผู้เขียน Song Lijun* @วันที่ 24 มิถุนายน 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri (ไฟล์ inputFile, ไฟล์เอาต์พุตไฟล์, บูลีน isOverWrite) พ่น IOException {/ / เป็นไฟล์. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// โฟลเดอร์ if (!outputFile.exists()) {outputFile.mkdir();}// วนลูปโฟลเดอร์ย่อยสำหรับ ( File child : inputFile.listFiles()) {คัดลอก (ลูก ไฟล์ใหม่ (outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * ฟังก์ชั่น: คัดลอกไฟล์เดียว* * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2014* @param inputFile * ไฟล์ต้นฉบับ* @param outputFile * ไฟล์เป้าหมาย * @param isOverWrite * อนุญาตให้เขียนทับหรือไม่ * @throws IOException */private static void copySimpleFile(File inputFile, File outputFile,boolean isOverWrite) พ่น IOException {//ไฟล์เป้าหมายมีอยู่แล้วถ้า (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " ไม่สามารถเขียนทับได้! ");}} else {// ไม่อนุญาตให้เขียนทับ return;}} InputStream ใน = ใหม่ FileInputStream (inputFile); OutputStream out = ใหม่ FileOutputStream (outputFile); ไบต์ [] buffer = ไบต์ใหม่ [1024]; int read = 0; ในขณะที่ ((อ่าน = in.read (บัฟเฟอร์)) ! = -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * ฟังก์ชั่น: ลบไฟล์* * @ผู้เขียน Song Lijun* @date 24 มิถุนายน 2557* @param file * file*/public static void Delete(File file) {deleteFile(file);}/** * Function: ลบไฟล์, การใช้แบบเรียกซ้ำภายใน* * @author Song Lijun* @date 2014 มิถุนายน 24 ต.ค. 2559 * @param file * file * @return boolean จริงหากการลบสำเร็จ เท็จหากการลบล้มเหลว */private static void DeleteFile(ไฟล์ไฟล์) {if (ไฟล์ == null || !file.exists()) {return;}//ไฟล์เดี่ยว if (!file.isDirectory()) {boolean delFlag = file.delete ();ถ้า (!delFlag) {throw new RuntimeException(file.getPath() + "การลบล้มเหลว!");} else {return;}}// ลบไดเร็กทอรีย่อยสำหรับ (ไฟล์ย่อย : file.listFiles()) {deleteFile(child);}// ลบตัวเอง file.delete();}/** * แยกนามสกุลไฟล์ออกจากพาธของไฟล์ เช่น "mypath/myfile.txt" -> "txt" * @author Song Lijun* * @date 24 มิถุนายน 2014* @param file path* @return หากพาธเป็นโมฆะ ให้ส่งคืน null โดยตรง * / สาธารณะสตริงคงที่ getFilenameExtension (เส้นทางสตริง) {if (เส้นทาง == null) {return null;} int extIndex = path.lastIndexOf (EXTENSION_SEPARATOR); ถ้า (extIndex == -1) {return null;} int folderIndex = path .lastIndexOf(FOLDER_SEPARATOR);ถ้า (folderIndex > extIndex) {return null;} return path.substring(extIndex + 1);}/** * แยกชื่อไฟล์ออกจากพาธของไฟล์ เช่น "mypath/myfile.txt" -> "myfile.txt" * @ผู้เขียน Song Lijun* * @date 24 มิถุนายน 2014* @param path * เส้นทางไฟล์ * @return ชื่อไฟล์ที่แตกออกมา หากพาธเป็นโมฆะ 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 Song Lijun* @date 24 มิถุนายน 2014* @param content * Bytes* @param file * ไฟล์บันทึกไปที่ * @throws IOException */public static void save (เนื้อหาไบต์ [], ไฟล์ไฟล์) พ่น IOException {if (ไฟล์ == null) {throw new RuntimeException("ไฟล์ที่บันทึกไม่สามารถว่างเปล่า");} if (content == null) {throw new RuntimeException("The file stream never be Empty");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * ฟังก์ชั่น: บันทึกไฟล์* * @author Song Lijun* @date 24 มิถุนายน , 2014 * @param streamIn * สตรีมไฟล์ * ไฟล์ @param * ไฟล์บันทึกไปที่ * @throws IOException */ บันทึกโมฆะคงที่สาธารณะ (InputStream streamIn, ไฟล์ไฟล์) พ่น IOException {ถ้า (ไฟล์ == null) {โยน RuntimeException ใหม่ ("ไฟล์ที่บันทึกไม่สามารถว่างเปล่า");} ถ้า (streamIn == null) {โยน RuntimeException ใหม่ ("สตรีมไฟล์ไม่สามารถว่างเปล่า");}/ /Output Stream OutputStream streamOut = null; //สร้างโฟลเดอร์หากไม่มีอยู่ ถ้า (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = ใหม่ FileOutputStream (ไฟล์);int bytesRead = 0; ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [8192]; ในขณะที่ ((bytesRead = streamIn.read (บัฟเฟอร์ 0, 8192)) != -1) {streamOut.write (บัฟเฟอร์ 0, bytesRead);}streamOut.close();streamIn.close();}}