From b6ffffef71743aede2d8efeaf2c69c44591fd7cc Mon Sep 17 00:00:00 2001 From: its Date: Sun, 7 Apr 2024 14:37:36 +0800 Subject: [PATCH] =?UTF-8?q?[update]=201.5.2-jre11=201.=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E7=9B=B8=E5=85=B3=E4=BE=9D=E8=B5=96=202.=20=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=B7=A5=E5=85=B7=E8=AF=BB=E5=8F=96=E6=96=87=E4=BB=B6?= =?UTF-8?q?FileInput=E4=BB=8EFileUtil=E4=B8=AD=E6=8F=90=E5=8F=96=E5=87=BA?= =?UTF-8?q?=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UPDATE.md | 10 + pom.xml | 31 ++- .../java/com/yexuejc/base/file/FileInput.java | 254 ++++++++++++++++++ .../com/yexuejc/base/pojo/ReadFileBean.java | 2 - .../java/com/yexuejc/base/util/FileUtil.java | 249 +---------------- 5 files changed, 292 insertions(+), 254 deletions(-) create mode 100644 src/main/java/com/yexuejc/base/file/FileInput.java diff --git a/UPDATE.md b/UPDATE.md index 15e3bc3..f55a5ec 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,6 +1,16 @@ yexuejc-base 更新记录 ------------------ +#### version :1.5.2-jre11 +**time:2024-4-7 14:34:33**
+**branch:** jre11
+**update:**
+1. 升级相关依赖 +2. 依赖工具读取文件[FileInput.java](src/main/java/com/yexuejc/base/file/FileInput.java)从[FileUtil.java](src/main/java/com/yexuejc/base/util/FileUtil.java)中提取出来 + +--- + + #### version :1.5.1-jre11 **time:2023-6-8 16:02:56**
**branch:** jre11
diff --git a/pom.xml b/pom.xml index b05bdcf..e32c6cc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,11 +6,11 @@ top.yexuejc yexuejc-base - 1.5.1-jre11 + 1.5.2-jre11 yexuejc-base https://github.com/yexuejc/yexuejc-base - Common toolkits based on JDK11 packaging + Common toolkits based on JDK11+ packaging @@ -42,16 +42,16 @@ https://nexus.yexuejc.top/repository/ https://maven.aliyun.com/repository/public https://jitpack.io - 0.11.5 + 0.12.5 true 11 3.0.2 2.11.0 - 1.70 - 31.1-jre - 5.2.2 - 2.14.2 + 1.78 + 33.1.0-jre + 5.2.5 + 2.17.0 2.11.4 UTF-8 @@ -93,14 +93,15 @@ org.bouncycastle - bcprov-jdk15on - ${bcprov-jdk15on.version} + bcprov-jdk18on + ${bcprov-jdk18on.version} - + com.google.guava guava ${guava.version} + true @@ -112,6 +113,12 @@ org.apache.poi poi-ooxml ${apache-poi.version} + + + org.apache.commons + commons-compress + + com.fasterxml.jackson.dataformat @@ -145,7 +152,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.13.0 UTF-8 11 @@ -156,7 +163,7 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.1 attach-sources diff --git a/src/main/java/com/yexuejc/base/file/FileInput.java b/src/main/java/com/yexuejc/base/file/FileInput.java new file mode 100644 index 0000000..5bb000a --- /dev/null +++ b/src/main/java/com/yexuejc/base/file/FileInput.java @@ -0,0 +1,254 @@ +package com.yexuejc.base.file; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.Reader; +import java.io.StringWriter; +import java.lang.reflect.Method; +import java.nio.charset.Charset; +import java.util.Scanner; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; + +/** + * 提供读取IO流方法合集 + *

读取速度快慢顺序:

+ * 1. {@link #read4Buffer(InputStream, Charset)}
+ * 2. {@link #read4IOUtilsCopy(InputStream, Charset)}
+ * 3. {@link #read4ByteStreams(InputStream, Charset)}
+ * 4. {@link #read4Byte(InputStream, Charset)}
+ * 5. {@link #read4StringBuilder(InputStream, Charset)}
+ * 6. {@link #read4BufferedReaderParallel(InputStream, Charset, String)}
+ * 7. {@link #read4BufferedReader(InputStream, Charset, String)}
+ * 8. {@link #read4ScannerA(InputStream)}
+ * 9. {@link #read4BufferIO(InputStream, Charset)}
+ * 10. {@link #read4IOUtils(InputStream, Charset)}
+ * 11. {@link #read4ScannerZ(InputStream)}
+ * 12. {@link #read4CharStreams(InputStream, Charset)}
+ */ +public class FileInput { + /** + * 读取IO流内容:byte方式 + * + * @param inputStream + * @param charset 编码:默认 {@link Charset#defaultCharset()} + * @return + * @throws IOException + */ + public static String read4Byte(InputStream inputStream, Charset charset) throws IOException { + byte[] bytes = new byte[inputStream.available()]; + inputStream.read(bytes); + return new String(bytes, charset == null ? Charset.defaultCharset() : charset); + } + + /** + * 读取IO流内容:BufferedReader方式 + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @param lineSeparator 换行方式:默认跟随系统 {@link System#lineSeparator()} + * @return + */ + public static String read4BufferedReader(InputStream inputStream, Charset charset, String lineSeparator) { + return new BufferedReader( + new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset) + ).lines().collect(Collectors.joining(lineSeparator == null ? System.lineSeparator() : lineSeparator)); + } + + /** + * 读取IO流内容:BufferedReader 并行方式 + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @param lineSeparator 换行方式:默认跟随系统 {@link System#lineSeparator()} + * @return + */ + public static String read4BufferedReaderParallel(InputStream inputStream, Charset charset, String lineSeparator) { + return new BufferedReader( + new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset) + ).lines().parallel() + .collect(Collectors.joining(lineSeparator == null ? System.lineSeparator() : lineSeparator)); + } + + /** + * 读取IO流内容:Scanner A方式 + * + * @param inputStream + * @return + */ + public static String read4ScannerA(InputStream inputStream) { + Scanner s = new Scanner(inputStream).useDelimiter("\\A"); + String str = s.hasNext() ? s.next() : ""; + return str; + } + + /** + * 读取IO流内容:Scanner Z方式 + * + * @param inputStream + * @return + */ + public static String read4ScannerZ(InputStream inputStream) { + return new Scanner(inputStream).useDelimiter("\\Z").next(); + } + + /** + * 读取IO流内容:StringBuilder方式 + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + */ + public static String read4StringBuilder(InputStream inputStream, Charset charset) throws IOException { + StringBuilder sb = new StringBuilder(); + String line; + BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); + while ((line = br.readLine()) != null) { + sb.append(line); + } + return sb.toString(); + } + + /** + * 读取IO流内容:ByteArrayOutputStream方式 + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + */ + public static String read4Buffer(InputStream inputStream, Charset charset) throws IOException { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int length; + while ((length = inputStream.read(buffer)) != -1) { + result.write(buffer, 0, length); + } + return result.toString(charset == null ? Charset.defaultCharset().name() : charset.name()); + } + + /** + * 读取IO流内容:BufferedInputStream+ByteArrayOutputStream方式 + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + */ + public static String read4BufferIO(InputStream inputStream, Charset charset) throws IOException { + BufferedInputStream bis = new BufferedInputStream(inputStream); + ByteArrayOutputStream buf = new ByteArrayOutputStream(); + int result = bis.read(); + while (result != -1) { + buf.write((byte) result); + result = bis.read(); + } + return buf.toString(charset == null ? Charset.defaultCharset().name() : charset.name()); + } + + /** + * 读取IO流内容: 依赖于commons-io:commons-io {@link IOUtils#copy(Reader, OutputStream, Charset)} + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + * @throws IOException + */ + public static String read4IOUtilsCopy(InputStream inputStream, Charset charset) throws IOException { + StringWriter writer = new StringWriter(); + IOUtils.copy(inputStream, writer, charset == null ? Charset.defaultCharset() : charset); + return writer.toString(); + } + + /** + * 读取IO流内容: 依赖于commons-io:commons-io {@link IOUtils#toString(InputStream, Charset)} + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + * @throws IOException + */ + public static String read4IOUtils(InputStream inputStream, Charset charset) throws IOException { + return IOUtils.toString(inputStream, charset == null ? Charset.defaultCharset() : charset); + } + + /** + * 读取IO流内容: 依赖于com.google.guava:guava {@link com.google.common.io.CharStreams#toString(Readable)} + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + * @throws IOException + */ + public static String read4CharStreams(InputStream inputStream, Charset charset) throws IOException, ClassNotFoundException { + try { + Class charStreamsClass = Class.forName("com.google.common.io.CharStreams"); + Method toStringMethod = charStreamsClass.getMethod("toString", InputStreamReader.class); + return (String) toStringMethod.invoke(null, new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); + } catch (ClassNotFoundException e) { + throw new ClassNotFoundException("缺少依赖,请引入Guava"); + } catch (ReflectiveOperationException e) { + throw new RuntimeException("com.google.common.io.CharStreams.toString调用失败,请检查Guava版本", e); + } +// return com.google.common.io.CharStreams.toString(new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); + } + + /** + * 读取IO流内容: 依赖于com.google.guava:guava {@link com.google.common.io.ByteStreams#toByteArray(InputStream)} + * + * @param inputStream + * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} + * @return + * @throws IOException + */ + public static String read4ByteStreams(InputStream inputStream, Charset charset) throws IOException, ClassNotFoundException { + try { + Class charStreamsClass = Class.forName("com.google.common.io.ByteStreams"); + Method toStringMethod = charStreamsClass.getMethod("toByteArray", InputStreamReader.class); + return (String) toStringMethod.invoke(null, new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); + } catch (ClassNotFoundException e) { + throw new ClassNotFoundException("缺少依赖,请引入Guava"); + } catch (ReflectiveOperationException e) { + throw new RuntimeException("com.google.common.io.ByteStreams.toByteArray调用失败,请检查Guava版本", e); + } +// return new String(com.google.common.io.ByteStreams.toByteArray(inputStream), charset == null ? Charset.defaultCharset() : charset); + } +} + + + /*public static void main(String[] args) { + long size = FileUtil.size(new File("E:\\OS\\deepin-15.6-amd64\\DeepinCloudPrintServerInstaller_1.0.0.1.exe")); + System.out.println(size); + System.out.println(1024 * 1024 * 5); + if (size > 1024 * 1024 * 5) { + System.out.println("文件最大5M"); + return; + } + + long s1 = fileSize(new File("E:\\OS\\cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso")); + System.out.println(s1); + long s2 = fileSize4Stream(new File("E:\\OS\\cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso")); + System.out.println(s2); + + String s1 = base64(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + System.out.println(s1); + + String s = sha1(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + String s2 = sha1ByBigFile(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + System.out.println(s); + System.out.println(s2); + + + String md5 = md5(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + String md52 = md5ByBigFile(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + System.out.println(md5); + System.out.println(md52); + + + String crc32 = crc32(new File("C:\\Users\\Administrator\\Desktop\\a.html")); + System.out.println(crc32); + }*/ diff --git a/src/main/java/com/yexuejc/base/pojo/ReadFileBean.java b/src/main/java/com/yexuejc/base/pojo/ReadFileBean.java index 4cf0a56..0e5c4d4 100644 --- a/src/main/java/com/yexuejc/base/pojo/ReadFileBean.java +++ b/src/main/java/com/yexuejc/base/pojo/ReadFileBean.java @@ -1,7 +1,5 @@ package com.yexuejc.base.pojo; -import org.checkerframework.checker.units.qual.C; - import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.List; diff --git a/src/main/java/com/yexuejc/base/util/FileUtil.java b/src/main/java/com/yexuejc/base/util/FileUtil.java index e390d66..5410c5c 100644 --- a/src/main/java/com/yexuejc/base/util/FileUtil.java +++ b/src/main/java/com/yexuejc/base/util/FileUtil.java @@ -1,29 +1,11 @@ package com.yexuejc.base.util; -import com.fasterxml.jackson.databind.MappingIterator; -import com.fasterxml.jackson.dataformat.csv.CsvMapper; -import com.fasterxml.jackson.dataformat.csv.CsvSchema; -import com.google.common.io.ByteStreams; -import com.google.common.io.CharStreams; -import com.yexuejc.base.annotation.CsvToBean; -import com.yexuejc.base.pojo.ReadFileBean; -import io.jsonwebtoken.lang.Assert; -import org.apache.commons.io.IOUtils; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; import java.io.RandomAccessFile; -import java.io.Reader; -import java.io.StringWriter; import java.math.BigInteger; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; @@ -35,11 +17,16 @@ import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Base64; import java.util.List; -import java.util.Scanner; import java.util.logging.Logger; -import java.util.stream.Collectors; import java.util.zip.CRC32; +import com.fasterxml.jackson.databind.MappingIterator; +import com.fasterxml.jackson.dataformat.csv.CsvMapper; +import com.fasterxml.jackson.dataformat.csv.CsvSchema; +import com.yexuejc.base.annotation.CsvToBean; +import com.yexuejc.base.pojo.ReadFileBean; +import io.jsonwebtoken.lang.Assert; + /** * 文件工具类 * @@ -507,7 +494,8 @@ public class FileUtil { while ((line = randomAccessFile.readLine()) != null && row <= readFileBean.getReadRowNum()) { row++; readFileBean.setPointer(randomAccessFile.getFilePointer()); - datas.add(readFileBean.lineScavenge(charsetDecode(line, readFileBean.getReadCharset()))); } + datas.add(readFileBean.lineScavenge(charsetDecode(line, readFileBean.getReadCharset()))); + } if (StrUtil.isEmpty(datas)) { //无数据 @@ -572,223 +560,4 @@ public class FileUtil { } return new String(result, charset); } - - /** - * 提供读取IO流方法合集 - *

读取速度快慢顺序:

- * 1. {@link #read4Buffer(InputStream, Charset)}
- * 2. {@link #read4IOUtilsCopy(InputStream, Charset)}
- * 3. {@link #read4ByteStreams(InputStream, Charset)}
- * 4. {@link #read4Byte(InputStream, Charset)}
- * 5. {@link #read4StringBuilder(InputStream, Charset)}
- * 6. {@link #read4BufferedReaderParallel(InputStream, Charset, String)}
- * 7. {@link #read4BufferedReader(InputStream, Charset, String)}
- * 8. {@link #read4ScannerA(InputStream)}
- * 9. {@link #read4BufferIO(InputStream, Charset)}
- * 10. {@link #read4IOUtils(InputStream, Charset)}
- * 11. {@link #read4ScannerZ(InputStream)}
- * 12. {@link #read4CharStreams(InputStream, Charset)}
- */ - public static class FileInput { - /** - * 读取IO流内容:byte方式 - * - * @param inputStream - * @param charset 编码:默认 {@link Charset#defaultCharset()} - * @return - * @throws IOException - */ - public static String read4Byte(InputStream inputStream, Charset charset) throws IOException { - byte[] bytes = new byte[inputStream.available()]; - inputStream.read(bytes); - return new String(bytes, charset == null ? Charset.defaultCharset() : charset); - } - - /** - * 读取IO流内容:BufferedReader方式 - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @param lineSeparator 换行方式:默认跟随系统 {@link System#lineSeparator()} - * @return - */ - public static String read4BufferedReader(InputStream inputStream, Charset charset, String lineSeparator) { - return new BufferedReader( - new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset) - ).lines().collect(Collectors.joining(lineSeparator == null ? System.lineSeparator() : lineSeparator)); - } - - /** - * 读取IO流内容:BufferedReader 并行方式 - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @param lineSeparator 换行方式:默认跟随系统 {@link System#lineSeparator()} - * @return - */ - public static String read4BufferedReaderParallel(InputStream inputStream, Charset charset, String lineSeparator) { - return new BufferedReader( - new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset) - ).lines().parallel() - .collect(Collectors.joining(lineSeparator == null ? System.lineSeparator() : lineSeparator)); - } - - /** - * 读取IO流内容:Scanner A方式 - * - * @param inputStream - * @return - */ - public static String read4ScannerA(InputStream inputStream) { - Scanner s = new Scanner(inputStream).useDelimiter("\\A"); - String str = s.hasNext() ? s.next() : ""; - return str; - } - - /** - * 读取IO流内容:Scanner Z方式 - * - * @param inputStream - * @return - */ - public static String read4ScannerZ(InputStream inputStream) { - return new Scanner(inputStream).useDelimiter("\\Z").next(); - } - - /** - * 读取IO流内容:StringBuilder方式 - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - */ - public static String read4StringBuilder(InputStream inputStream, Charset charset) throws IOException { - StringBuilder sb = new StringBuilder(); - String line; - BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); - while ((line = br.readLine()) != null) { - sb.append(line); - } - return sb.toString(); - } - - /** - * 读取IO流内容:ByteArrayOutputStream方式 - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - */ - public static String read4Buffer(InputStream inputStream, Charset charset) throws IOException { - ByteArrayOutputStream result = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024]; - int length; - while ((length = inputStream.read(buffer)) != -1) { - result.write(buffer, 0, length); - } - return result.toString(charset == null ? Charset.defaultCharset().name() : charset.name()); - } - - /** - * 读取IO流内容:BufferedInputStream+ByteArrayOutputStream方式 - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - */ - public static String read4BufferIO(InputStream inputStream, Charset charset) throws IOException { - BufferedInputStream bis = new BufferedInputStream(inputStream); - ByteArrayOutputStream buf = new ByteArrayOutputStream(); - int result = bis.read(); - while (result != -1) { - buf.write((byte) result); - result = bis.read(); - } - return buf.toString(charset == null ? Charset.defaultCharset().name() : charset.name()); - } - - /** - * 读取IO流内容: 依赖于commons-io:commons-io {@link IOUtils#copy(Reader, OutputStream, Charset)} - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - * @throws IOException - */ - public static String read4IOUtilsCopy(InputStream inputStream, Charset charset) throws IOException { - StringWriter writer = new StringWriter(); - IOUtils.copy(inputStream, writer, charset == null ? Charset.defaultCharset() : charset); - return writer.toString(); - } - - /** - * 读取IO流内容: 依赖于commons-io:commons-io {@link IOUtils#toString(InputStream, Charset)} - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - * @throws IOException - */ - public static String read4IOUtils(InputStream inputStream, Charset charset) throws IOException { - return IOUtils.toString(inputStream, charset == null ? Charset.defaultCharset() : charset); - } - - /** - * 读取IO流内容: 依赖于com.google.guava:guava {@link CharStreams#toString(Readable)} - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - * @throws IOException - */ - public static String read4CharStreams(InputStream inputStream, Charset charset) throws IOException { - return CharStreams.toString(new InputStreamReader(inputStream, charset == null ? Charset.defaultCharset() : charset)); - } - - /** - * 读取IO流内容: 依赖于com.google.guava:guava {@link ByteStreams#toByteArray(InputStream)} - * - * @param inputStream - * @param charset 编码:默认跟随系统 {@link Charset#defaultCharset()} - * @return - * @throws IOException - */ - public static String read4ByteStreams(InputStream inputStream, Charset charset) throws IOException { - return new String(ByteStreams.toByteArray(inputStream), charset == null ? Charset.defaultCharset() : charset); - } - } - - - /*public static void main(String[] args) { - long size = FileUtil.size(new File("E:\\OS\\deepin-15.6-amd64\\DeepinCloudPrintServerInstaller_1.0.0.1.exe")); - System.out.println(size); - System.out.println(1024 * 1024 * 5); - if (size > 1024 * 1024 * 5) { - System.out.println("文件最大5M"); - return; - } - - long s1 = fileSize(new File("E:\\OS\\cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso")); - System.out.println(s1); - long s2 = fileSize4Stream(new File("E:\\OS\\cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso")); - System.out.println(s2); - - String s1 = base64(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - System.out.println(s1); - - String s = sha1(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - String s2 = sha1ByBigFile(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - System.out.println(s); - System.out.println(s2); - - - String md5 = md5(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - String md52 = md5ByBigFile(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - System.out.println(md5); - System.out.println(md52); - - - String crc32 = crc32(new File("C:\\Users\\Administrator\\Desktop\\a.html")); - System.out.println(crc32); - }*/ }