Java で一般的に使用されるツール クラスには、String クラスと MD5 暗号化クラスと復号化クラスが含まれます
私たち Java プログラマーは、プロジェクトを開発するときにいくつかのツール クラスをよく使用します。今日は、プロジェクトで使用できる私のツール クラスを 2 つ共有します。
1. 文字列ツールクラス
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(); } }
2. MD5 ツールクラス
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(); } }
Java の一般的なツールの文字列操作クラスと MD5 暗号化および復号化クラスに関連する記事については、PHP 中国語 Web サイトに注目してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
