فئات تشفير وفك تشفير السلسلة وMD5 شائعة الاستخدام في Java
غالبًا ما نستخدم نحن مبرمجو Java بعض فئات الأدوات عند تطوير المشاريع. سأشارك اليوم اثنتين من فئات الأدوات التي يمكنك استخدامها في مشاريعك.
1. فئة أداة السلسلة
الحزمة 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 Song Lijun* @date 24 يونيو، 2014*/public class FileUtil {private static Final String FOLDER_SEPARATOR = "/";شار نهائي ثابت خاص EXTENSION_SEPARATOR = '.';/** * الوظيفة: نسخ الملفات أو مجلد الملفات . * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param inputFile * الملف المصدر * @paramputFile * ملف الوجهة* @param isOverWrite * ما إذا كان سيتم الكتابة فوق (فقط للملفات) * @throws IOException */public static void Copy (File inputFile، FileputFile، boolean isOverWrite) يرمي IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "الدليل المصدر غير موجود!");}copyPri(inputFile,outputFile,isOverWrite);}/** * الوظيفة: استخدام متكرر لـ ينسخ . * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param inputFile * @paramputFile * @param isOverWrite * @throws IOException */private static void copPri(File inputFile, FileputFile,boolean isOverWrite) throws IOException {/ / هو ملف. if (inputFile.isFile()) {copySimpleFile(inputFile,outputFile,isOverWrite);} else {// Folder if (!outputFile.exists()) {outputFile.mkdir();}// تكرار المجلدات الفرعية لـ ( الملف الفرعي : inputFile.listFiles()) {نسخ (طفل، ملف جديد (outputFile.getPath () + "/" + Child.getName()),isOverWrite);}}}/** * الوظيفة: نسخ ملف واحد* * @author Song Lijun* @تاريخ 24 يونيو، 2014* @param inputFile * الملف المصدر* @paramputFile * الملف الهدف *param isOverWrite * ما إذا كان مسموحًا بالكتابة فوق * @throws IOException */private static voidcopySimpleFile(File inputFile, File OutputFile,boolean isOverWrite) يلقي 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 Song Lijun* @date 24 يونيو 2014* @param file * file*/public static void حذف(ملف ملف) {deleteFile(file);}/** * الوظيفة: حذف الملف، الاستخدام العودي الداخلي* * @author Song Lijun* @date 2014 يونيو 24 كانون الثاني (يناير) 2016 * @param file * file * @return boolean true إذا نجح الحذف، وخطأ إذا فشل الحذف. */private static voiddeleteFile(File file) {if (file == null || !file.exists()) {return;}//ملف واحد if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "Deletion Failed!");} else {return;}}// حذف الدليل الفرعي لـ (ملف فرعي) : file.listFiles()) {deleteFile(child);}// احذف ملفك file.delete();}/** * استخرج امتداد الملف من مسار الملف، على سبيل المثال "mypath/myfile.txt" -> "txt". * @author Song Lijun* * @date 24 يونيو 2014* @param file path* @return إذا كان المسار فارغًا، فارجع فارغًا مباشرة. */ public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int مجلد Index = المسار .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * استخرج اسم الملف من مسار الملف، على سبيل المثال: "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @تاريخ 24 يونيو 2014* @param path * مسار الملف. *return اسم الملف المستخرج إذا كان المسار فارغًا، فسيتم إرجاعه مباشرةً. */public static String getFilename(String path) {if (path == null) {return null;}int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);return (separatorIndex != -1 ? path.substring(separatorIndex + 1): المسار)؛}/** * الوظيفة: حفظ الملف. * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param content * بايتات* @param file * الملف المحفوظ في * @throws IOException */public static void save(byte[] content, File file) throws IOException {if (ملف == فارغ) {throw new RuntimeException("لا يمكن أن يكون الملف المحفوظ فارغًا");} if (content == null) {throw new RuntimeException("لا يمكن أن يكون دفق الملف فارغًا");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * الوظيفة: حفظ الملف* * @author Song Lijun* @تاريخ 24 يونيو ، 2014 * @paramstreamIn * دفق الملف * @param file * تم حفظ الملف في * @throws IOException */public static void save(InputStreamstreamIn, File file) يلقي IOException {if (file == null) {throw new RuntimeException("لا يمكن أن يكون الملف المحفوظ فارغًا");} if (streamIn == null) {throw new RuntimeException("لا يمكن أن يكون دفق الملف فارغًا");}/ /Output Stream OutputStreamstreamOut = null; // أنشئ المجلد إذا لم يكن موجودًا. إذا (!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();}}
2. أدوات MD5
الحزمة 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 Song Lijun* @date 24 يونيو، 2014*/public class FileUtil {private static Final String FOLDER_SEPARATOR = "/";شار نهائي ثابت خاص EXTENSION_SEPARATOR = '.';/** * الوظيفة: نسخ الملفات أو مجلد الملفات . * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param inputFile * الملف المصدر * @paramputFile * ملف الوجهة* @param isOverWrite * ما إذا كان سيتم الكتابة فوق (فقط للملفات) * @throws IOException */public static void Copy (File inputFile، FileputFile، boolean isOverWrite) يرمي IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "الدليل المصدر غير موجود!");}copyPri(inputFile,outputFile,isOverWrite);}/** * الوظيفة: استخدام متكرر لـ ينسخ . * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param inputFile * @paramputFile * @param isOverWrite * @throws IOException */private static void copPri(File inputFile, FileputFile,boolean isOverWrite) throws IOException {/ / هو ملف. if (inputFile.isFile()) {copySimpleFile(inputFile,outputFile,isOverWrite);} else {// Folder if (!outputFile.exists()) {outputFile.mkdir();}// تكرار المجلدات الفرعية لـ ( الملف الفرعي : inputFile.listFiles()) {نسخ (طفل، ملف جديد (outputFile.getPath () + "/" + Child.getName()),isOverWrite);}}}/** * الوظيفة: نسخ ملف واحد* * @author Song Lijun* @تاريخ 24 يونيو، 2014* @param inputFile * الملف المصدر* @paramputFile * الملف الهدف *param isOverWrite * ما إذا كان مسموحًا بالكتابة فوق * @throws IOException */private static voidcopySimpleFile(File inputFile, File OutputFile,boolean isOverWrite) يلقي 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 Song Lijun* @date 24 يونيو 2014* @param file * file*/public static void حذف(ملف ملف) {deleteFile(file);}/** * الوظيفة: حذف الملف، الاستخدام العودي الداخلي* * @author Song Lijun* @date 2014 يونيو 24 كانون الثاني (يناير) 2016 * @param file * file * @return boolean true إذا نجح الحذف، وخطأ إذا فشل الحذف. */private static voiddeleteFile(File file) {if (file == null || !file.exists()) {return;}//ملف واحد if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "Deletion Failed!");} else {return;}}// حذف الدليل الفرعي لـ (ملف فرعي) : file.listFiles()) {deleteFile(child);}// احذف ملفك file.delete();}/** * استخرج امتداد الملف من مسار الملف، على سبيل المثال "mypath/myfile.txt" -> "txt". * @author Song Lijun* * @date 24 يونيو 2014* @param file path* @return إذا كان المسار فارغًا، فارجع فارغًا مباشرة. */ public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int مجلد Index = المسار .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * استخرج اسم الملف من مسار الملف، على سبيل المثال: "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @تاريخ 24 يونيو 2014* @param path * مسار الملف. *return اسم الملف المستخرج إذا كان المسار فارغًا، فسيتم إرجاعه مباشرةً. */public static String getFilename(String path) {if (path == null) {return null;}int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);return (separatorIndex != -1 ? path.substring(separatorIndex + 1): المسار)؛}/** * الوظيفة: حفظ الملف. * * @author Song Lijun* @ تاريخ 24 يونيو، 2014* @param content * بايتات* @param file * الملف المحفوظ في * @throws IOException */public static void save(byte[] content, File file) throws IOException {if (ملف == فارغ) {throw new RuntimeException("لا يمكن أن يكون الملف المحفوظ فارغًا");} if (content == null) {throw new RuntimeException("لا يمكن أن يكون دفق الملف فارغًا");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * الوظيفة: حفظ الملف* * @author Song Lijun* @تاريخ 24 يونيو ، 2014 * @paramstreamIn * دفق الملف * @param file * تم حفظ الملف في * @throws IOException */public static void save(InputStreamstreamIn, File file) يلقي IOException {if (file == null) {throw new RuntimeException("لا يمكن أن يكون الملف المحفوظ فارغًا");} if (streamIn == null) {throw new RuntimeException("لا يمكن أن يكون دفق الملف فارغًا");}/ /Output Stream OutputStreamstreamOut = null; // أنشئ المجلد إذا لم يكن موجودًا. إذا (!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();}}