From 083df8d788c95c009a94378e620684eb5de2bd21 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 13 九月 2025 13:08:09 +0800
Subject: [PATCH] 注释问题修复

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java |   91 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
index 1ea63b1..0d46269 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
@@ -1,12 +1,22 @@
 package org.springblade.mdm.utils;
 
 import org.apache.tika.Tika;
+import org.apache.tika.config.TikaConfig;
+import org.apache.tika.detect.CompositeDetector;
+import org.apache.tika.detect.DefaultDetector;
+import org.apache.tika.detect.Detector;
+import org.apache.tika.detect.TextDetector;
+import org.apache.tika.mime.MimeType;
+import org.apache.tika.mime.MimeTypeException;
+import org.apache.tika.mime.MimeTypes;
 import org.mozilla.universalchardet.UniversalDetector;
 import org.springblade.core.tool.utils.Charsets;
 
 import java.io.*;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -18,7 +28,9 @@
 	 * @return
 	 */
 	public static boolean isTextFile(InputStream inputStream) {
-		Tika tika = new Tika();
+		MimeTypes mimeTypes = MimeTypes.getDefaultMimeTypes();
+		Tika tika = new Tika(mimeTypes);
+
 		try {
 			String mimeType = tika.detect(inputStream);
 			//String mimeType = tika.detect(file);
@@ -89,7 +101,7 @@
 	public static String detectFromInputStream(InputStream inputStream) {
 		UniversalDetector detector = new UniversalDetector(null);
 		//寮�濮嬬粰涓�閮ㄥ垎鏁版嵁锛岃瀛︿範涓�涓嬪晩锛屽畼鏂瑰缓璁槸1000涓猙yte宸﹀彸锛堝綋鐒惰繖1000涓猙yte浣犲緱鍖呭惈涓枃涔嬬被鐨勶級
-		byte[] buffer = new byte[1024];
+		byte[] buffer = new byte[2048];
 		try {
 			int actRead = inputStream.read(buffer);
 
@@ -104,4 +116,79 @@
 		return detector.getDetectedCharset();
 	}
 
+	/**
+	 * 璇诲彇鏂囦欢鏌愯
+	 * @param inputStream
+	 * @param lineIndex 琛岀储寮� 0based
+	 * @return 琛屾枃鏈�
+	 * @throws IOException
+	 */
+	public static String readLineAt(InputStream inputStream,int lineIndex) throws IOException {
+		byte[] bytes = inputStream.readAllBytes();
+		ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes);
+		Charset charset = Charsets.charset(detectFromInputStream(byteStream));
+		byteStream.reset();//閲嶇疆锛屼娇缁х画鍙敤
+
+		String lineText = "";
+		try (BufferedReader reader = new BufferedReader(new InputStreamReader(byteStream,charset))) {
+			// 璺宠繃绗竴琛�
+			int current = 0;
+			while(current<=lineIndex && lineText!=null) {
+				lineText = reader.readLine();
+				current++;
+			}
+		}
+		return lineText;
+	}
+
+	/**
+	 * 浠庤緭鍏ユ祦鑾峰彇鏂囨湰
+	 * @param ins 鏉熸祦
+	 * @return 鏂囨湰瀛楃
+	 * @throws IOException
+	 */
+	public static String getContentFromStream(InputStream ins) throws IOException {
+		byte[] bytes = ins.readAllBytes();
+		ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes);
+		Charset charset = Charsets.charset(detectFromInputStream(byteStream));
+		byteStream.reset();//閲嶇疆锛屼娇缁х画鍙敤
+
+		return new String(bytes, charset);
+	}
+
+	/**
+	 * 鏇挎崲鏂囦欢涓殑鏌愪竴琛�
+	 * @param ins 杈撳叆娴�
+	 * @param replaceWith 鏇挎崲鐨勬枃鏈�
+	 * @param lineIndex 琛岀储寮� 0 based
+	 */
+    public static InputStream replaceAtLine(InputStream ins, int lineIndex,String replaceWith) throws IOException {
+		byte[] bytes = ins.readAllBytes();
+		ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes);
+		Charset charset = Charsets.charset(detectFromInputStream(byteStream));
+		byteStream.reset();
+
+		Path tempFile = Files.createTempFile("temppro"+System.currentTimeMillis(), ".tmp");
+
+		try (InputStreamReader isr = new InputStreamReader(byteStream, charset);
+			 BufferedReader reader = new BufferedReader(isr);
+			 BufferedWriter writer = Files.newBufferedWriter(tempFile,charset)) {//
+
+			int currentLine = 0;
+			String line;
+
+			while ((line = reader.readLine()) != null) {
+				// 濡傛灉鏄洰鏍囪锛屽啓鍏ユ柊鍐呭
+				if (currentLine == lineIndex) {
+					writer.write(replaceWith);
+				} else {
+					writer.write(line);
+				}
+				writer.newLine();
+				currentLine++;
+			}
+
+		}
+		return new ByteArrayInputStream(Files.newInputStream(tempFile).readAllBytes());
+    }
 }

--
Gitblit v1.9.3