Классы шифрования и дешифрования строк и 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 = '.';/** * Функция: копирование файлов или папки с файлами . * * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * Исходный файл* @param outputFile * Файл назначения* @param isOverWrite * Перезаписывать ли (только для файлов) * @throws IOException */public static void copy (Файл inputFile, файл outputFile, логическое значение isOverWrite) выдает исключение IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + «Исходный каталог не существует!»);}copyPri(inputFile, outputFile, isOverWrite);}/** * Функция: рекурсивное использование для копия. * * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) выдает IOException {/ / это файл. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Folder if (!outputFile.exists()) {outputFile.mkdir();}// Цикл подпапок для (File child: inputFile.listFiles()) {copy(child,new File(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Функция: копирование одного файла* * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * исходный файл* @param outputFile * целевой файл * @param isOverWrite * Разрешена ли перезапись * @throws IOException */private static void copySimpleFile(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 = новый FileOutputStream(outputFile);byte[] буфер = новый байт[1024];int read = 0; while ((read = in.read(buffer)) != -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * Функция: удалить файлы* * @author Сон Лицзюнь* @date 24 июня 2014 г. * @param file * file*/public static void delete(File file) {deleteFile(file);}/** * Функция: удаление файла, внутреннее рекурсивное использование* * @author Song Lijun* @date, июнь 2014 г. 24, 2016 * @param file * 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;}}// Удалить подкаталог для (Дочерний файл : file.listFiles()) {deleteFile(child);}// Удалить себя file.delete();}/** * Извлеките расширение файла из пути к файлу, например "mypath/myfile.txt" ->. «txt». * @author Сонг Лицзюнь* * @date 24 июня 2014 г. * @param путь к файлу* @return Если путь равен нулю, верните значение NULL напрямую. */public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}intfolderIndex = путь .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;} return path.substring(extIndex + 1);}/** * Извлеките имя файла из пути к файлу, например: «mypath/myfile.txt» -> «myfile.txt». * @author Сон Лицзюнь* * @date 24 июня 2014 г. * @param path * Путь к файлу. * @return Имя извлеченного файла. Если путь имеет значение 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 Song Lijun* @date 24 июня 2014 г.* @param content * Байты* @param file * Файл сохранен в * @throws IOException */public static void save(byte[] content, File file) выдает IOException {if (file == null) {throw new RuntimeException("Сохраненный файл не может быть пустым");} if (content == null) {throw new RuntimeException("Файловый поток не может быть пустым");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * Функция: Сохранить файл* * @author Song Lijun* @date 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 //Создаем папку, если она не существует. if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = новый FileOutputStream(файл);int bytesRead = 0;byte[] буфер = новый байт[8192];в то время как ((bytesRead =streamIn.read(buffer, 0, 8192)) != -1) {streamOut.write(buffer, 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 = '.';/** * Функция: копирование файлов или папки с файлами . * * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * Исходный файл* @param outputFile * Файл назначения* @param isOverWrite * Перезаписывать ли (только для файлов) * @throws IOException */public static void copy (Файл inputFile, файл outputFile, логическое значение isOverWrite) выдает исключение IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + «Исходный каталог не существует!»);}copyPri(inputFile, outputFile, isOverWrite);}/** * Функция: рекурсивное использование для копия. * * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) выдает IOException {/ / это файл. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Folder if (!outputFile.exists()) {outputFile.mkdir();}// Цикл подпапок для (File child: inputFile.listFiles()) {copy(child,new File(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Функция: копирование одного файла* * @author Song Lijun* @date 24 июня 2014 г.* @param inputFile * исходный файл* @param outputFile * целевой файл * @param isOverWrite * Разрешена ли перезапись * @throws IOException */private static void copySimpleFile(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 = новый FileOutputStream(outputFile);byte[] буфер = новый байт[1024];int read = 0; while ((read = in.read(buffer)) != -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * Функция: удалить файлы* * @author Сон Лицзюнь* @date 24 июня 2014 г. * @param file * file*/public static void delete(File file) {deleteFile(file);}/** * Функция: удаление файла, внутреннее рекурсивное использование* * @author Song Lijun* @date, июнь 2014 г. 24, 2016 * @param file * 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;}}// Удалить подкаталог для (Дочерний файл : file.listFiles()) {deleteFile(child);}// Удалить себя file.delete();}/** * Извлеките расширение файла из пути к файлу, например "mypath/myfile.txt" ->. «txt». * @author Сонг Лицзюнь* * @date 24 июня 2014 г.* @param путь к файлу* @return Если путь равен нулю, верните значение NULL напрямую. */public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}intfolderIndex = путь .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;} return path.substring(extIndex + 1);}/** * Извлеките имя файла из пути к файлу, например: «mypath/myfile.txt» -> «myfile.txt». * @author Сон Лицзюнь* * @date 24 июня 2014 г. * @param path * Путь к файлу. * @return Имя извлеченного файла. Если путь имеет значение 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 Song Lijun* @date 24 июня 2014 г.* @param content * Байты* @param file * Файл сохранен в * @throws IOException */public static void save(byte[] content, File file) выдает IOException {if (file == null) {throw new RuntimeException("Сохраненный файл не может быть пустым");} if (content == null) {throw new RuntimeException("Файловый поток не может быть пустым");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * Функция: Сохранить файл* * @author Song Lijun* @date 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 //Создаем папку, если она не существует. if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = новый FileOutputStream(файл);int bytesRead = 0;byte[] буфер = новый байт[8192];в то время как ((bytesRead =streamIn.read(buffer, 0, 8192)) != -1) {streamOut.write(buffer, 0, bytesRead);}streamOut.close();streamIn.close();}}