Classes de chiffrement et de déchiffrement de chaînes et MD5 couramment utilisées en Java
Nous, les programmeurs Java, utilisons souvent certaines classes d'outils lors du développement de projets. Aujourd'hui, je vais partager deux de mes classes d'outils que vous pouvez utiliser dans vos projets.
1. Classe d'outils de chaîne
package com.itjh.javaUtil; importer java.io.ByteArrayInputStream; importer java.io.File; importer java.io.FileInputStream; importer java.io.FileOutputStream; importer java.io.IOException; importer java.io.InputStream; importer java.io.OutputStream;/** * Classe auxiliaire pour les opérations liées aux fichiers. * * @author Song Lijun* @date 24 juin 2014*/public class FileUtil {private static final String FOLDER_SEPARATOR = "/";private static final char EXTENSION_SEPARATOR = '.';/** * Fonction : copier des fichiers ou un dossier de fichiers . * * @author Song Lijun* @date 24 juin 2014* @param inputFile * Fichier source* @param outputFile * Fichier de destination* @param isOverWrite * S'il faut écraser (uniquement pour les fichiers) * @throws IOException */public static void copy (File inputFile, File outputFile, boolean isOverWrite) lance IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "Le répertoire source n'existe pas !");}copyPri(inputFile, outputFile, isOverWrite);}/** * Fonction : Utilisation récursive pour copie. * * @author Song Lijun* @date 24 juin 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) throws IOException {/ / est un fichier. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Dossier if (!outputFile.exists()) {outputFile.mkdir();}// Boucle de sous-dossiers pour (Fichier enfant : inputFile.listFiles()) {copy(child,new File(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Fonction : copier un seul fichier* * @author Song Lijun* @date 24 juin 2014* @param inputFile * fichier source* @param outputFile * fichier cible * @param isOverWrite * Si l'écrasement est autorisé * @throws IOException */private static void copySimpleFile(File inputFile, File outputFile,boolean isOverWrite) lance IOException {//Le fichier cible existe déjà if (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " Impossible d'écraser ! ");}} else {// L'écrasement n'est pas autorisé 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();}/** * Fonction : supprimer des fichiers* * @author Song Lijun* @date 24 juin 2014* @param file * file*/public static void delete(File file) {deleteFile(file);}/** * Fonction : supprimer un fichier, utilisation récursive interne* * @author Song Lijun* @date juin 2014 24, 2016 * @param file * file * @return boolean true si la suppression réussit, false si la suppression échoue. */private static void deleteFile(File file) {if (file == null || !file.exists()) {return;}//Fichier unique if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "La suppression a échoué !");} else {return;}}// Supprimer le sous-répertoire pour (Fichier enfant : file.listFiles()) {deleteFile(child);}// Supprimez-vous file.delete();}/** * Extrayez l'extension du fichier du chemin du fichier, par exemple "mypath/myfile.txt" ->. "txt". * @author Song Lijun* * @date 24 juin 2014* @param file path* @return Si le chemin est nul, renvoie directement null. */public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int dossierIndex = chemin .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * Extrayez le nom du fichier du chemin du fichier, par exemple : "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @date 24 juin 2014* @param path * Chemin du fichier. * @return Le nom du fichier extrait. Si le chemin est nul, null sera renvoyé directement. */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);}/** * Fonction : Enregistrez le fichier. * * @author Song Lijun* @date 24 juin 2014* @param content * Octets* @param file * Fichier enregistré dans * @throws IOException */public static void save(byte[] content, File file) lance IOException {if (file == null) {throw new RuntimeException("Le fichier enregistré ne peut pas être vide");} if (content == null) {throw new RuntimeException("Le flux de fichiers ne peut pas être vide");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * Fonction : Enregistrer le fichier* * @author Song Lijun* @date 24 juin , 2014 * @param streamIn * Flux de fichiers * @param file * Fichier enregistré dans * @throws IOException */public static void save(InputStream streamIn, File file) throws IOException {if (file == null) {throw new RuntimeException("Le fichier enregistré ne peut pas être vide");} if (streamIn == null) {throw new RuntimeException("Le flux de fichiers ne peut pas être vide");}/ /Output Stream OutputStream streamOut = null; //Créez le dossier s'il n'existe pas. 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();}}
2. Outils MD5
package com.itjh.javaUtil; importer java.io.ByteArrayInputStream; importer java.io.File; importer java.io.FileInputStream; importer java.io.FileOutputStream; importer java.io.IOException; importer java.io.InputStream; importer java.io.OutputStream;/** * Classe auxiliaire pour les opérations liées aux fichiers. * * @author Song Lijun* @date 24 juin 2014*/public class FileUtil {private static final String FOLDER_SEPARATOR = "/";private static final char EXTENSION_SEPARATOR = '.';/** * Fonction : copier des fichiers ou un dossier de fichiers . * * @author Song Lijun* @date 24 juin 2014* @param inputFile * Fichier source* @param outputFile * Fichier de destination* @param isOverWrite * S'il faut écraser (uniquement pour les fichiers) * @throws IOException */public static void copy (File inputFile, File outputFile, boolean isOverWrite) lance IOException {if (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "Le répertoire source n'existe pas !");}copyPri(inputFile, outputFile, isOverWrite);}/** * Fonction : Utilisation récursive pour copie. * * @author Song Lijun* @date 24 juin 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) throws IOException {/ / est un fichier. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Dossier if (!outputFile.exists()) {outputFile.mkdir();}// Boucle de sous-dossiers pour (Fichier enfant : inputFile.listFiles()) {copy(child,new File(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Fonction : copier un seul fichier* * @author Song Lijun* @date 24 juin 2014* @param inputFile * fichier source* @param outputFile * fichier cible * @param isOverWrite * Si l'écrasement est autorisé * @throws IOException */private static void copySimpleFile(File inputFile, File outputFile,boolean isOverWrite) lance IOException {//Le fichier cible existe déjà if (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " Impossible d'écraser ! ");}} else {// L'écrasement n'est pas autorisé 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();}/** * Fonction : supprimer des fichiers* * @author Song Lijun* @date 24 juin 2014* @param file * file*/public static void delete(File file) {deleteFile(file);}/** * Fonction : supprimer un fichier, utilisation récursive interne* * @author Song Lijun* @date juin 2014 24, 2016 * @param file * file * @return boolean true si la suppression réussit, false si la suppression échoue. */private static void deleteFile(File file) {if (file == null || !file.exists()) {return;}//Fichier unique if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "La suppression a échoué !");} else {return;}}// Supprimer le sous-répertoire pour (Fichier enfant : file.listFiles()) {deleteFile(child);}// Supprimez-vous file.delete();}/** * Extrayez l'extension du fichier du chemin du fichier, par exemple "mypath/myfile.txt" ->. "txt". * @author Song Lijun* * @date 24 juin 2014* @param file path* @return Si le chemin est nul, renvoie directement null. */public static String getFilenameExtension(String path) {if (path == null) {return null;}int extIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int dossierIndex = chemin .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * Extrayez le nom du fichier du chemin du fichier, par exemple : "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @date 24 juin 2014* @param path * Chemin du fichier. * @return Le nom du fichier extrait. Si le chemin est nul, null sera renvoyé directement. */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);}/** * Fonction : Enregistrez le fichier. * * @author Song Lijun* @date 24 juin 2014* @param content * Octets* @param file * Fichier enregistré dans * @throws IOException */public static void save(byte[] content, File file) lance IOException {if (file == null) {throw new RuntimeException("Le fichier enregistré ne peut pas être vide");} if (content == null) {throw new RuntimeException("Le flux de fichiers ne peut pas être vide");}InputStream is = new ByteArrayInputStream(content);save(is, file);}/** * Fonction : Enregistrer le fichier* * @author Song Lijun* @date 24 juin , 2014 * @param streamIn * Flux de fichiers * @param file * Fichier enregistré dans * @throws IOException */public static void save(InputStream streamIn, File file) throws IOException {if (file == null) {throw new RuntimeException("Le fichier enregistré ne peut pas être vide");} if (streamIn == null) {throw new RuntimeException("Le flux de fichiers ne peut pas être vide");}/ /Output Stream OutputStream streamOut = null; //Créez le dossier s'il n'existe pas. 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();}}