From b611d1e2e02aaed2cf7880d96cd189cdc774b781 Mon Sep 17 00:00:00 2001 From: godotg Date: Fri, 29 Jul 2022 10:53:16 +0800 Subject: [PATCH] =?UTF-8?q?perf[FileUtils]:=20=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializer/cpp/GenerateCppUtils.java | 6 ++-- .../serializer/csharp/GenerateCsUtils.java | 4 +-- .../serializer/gdscript/GenerateGdUtils.java | 7 ++-- .../javascript/GenerateJsUtils.java | 6 ++-- .../serializer/lua/GenerateLuaUtils.java | 6 ++-- .../protobuf/GenerateProtobufUtils.java | 6 ++-- .../typescript/GenerateTsUtils.java | 13 +++---- .../com/zfoo/protocol/util/FileUtils.java | 36 ++----------------- .../com/zfoo/protocol/util/FileUtilTest.java | 4 +-- .../zfoo/storage/util/ExcelToJsonUtils.java | 2 +- 10 files changed, 29 insertions(+), 61 deletions(-) diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java index e5871c4c..cd384ef8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java @@ -42,7 +42,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateCppUtils { @@ -116,7 +116,7 @@ public abstract class GenerateCppUtils { .forEach(it -> initProtocolBuilder.append(TAB).append(TAB).append(StringUtils.format("protocols[{}] = new {}Registration();", it.protocolId(), it.protocolConstructor().getDeclaringClass().getSimpleName())).append(LS)); protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, headerBuilder.toString(), initProtocolBuilder.toString().trim()); - FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.h")), protocolManagerTemplate); + FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.h")), protocolManagerTemplate, true); } /** @@ -152,7 +152,7 @@ public abstract class GenerateCppUtils { , GenerateCppUtils.protocolOutputPath , GenerateProtocolPath.getCapitalizeProtocolPath(protocolId) , protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java index bb33da56..8d6f0b69 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java @@ -35,7 +35,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateCsUtils { @@ -120,7 +120,7 @@ public abstract class GenerateCsUtils { , protocolOutputRootPath , GenerateProtocolPath.getCapitalizeProtocolPath(protocolId) , protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } private static String docTitle(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java index 0fe9d9bf..37de747b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java @@ -34,11 +34,10 @@ import java.util.List; import java.util.Map; import static com.zfoo.protocol.util.FileUtils.LS; -import static com.zfoo.protocol.util.StringUtils.TAB; import static com.zfoo.protocol.util.StringUtils.TAB_ASCII; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateGdUtils { @@ -99,7 +98,7 @@ public abstract class GenerateGdUtils { initBuilder.append(TAB_ASCII).append(StringUtils.format("protocols[{}] = {}", protocolId, name)).append(LS); } protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, importBuilder.toString().trim(), StringUtils.EMPTY_JSON, initBuilder.toString().trim()); - FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.gd")), protocolManagerTemplate); + FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.gd")), protocolManagerTemplate, true); } public static void createGdProtocolFile(ProtocolRegistration registration) throws IOException { @@ -119,7 +118,7 @@ public abstract class GenerateGdUtils { protocolTemplate = StringUtils.format(protocolTemplate, docTitle, fieldDefinition.trim(), protocolId, writeObject.trim(), readObject.trim()); var protocolOutputPath = StringUtils.format("{}/{}/{}.gd", protocolOutputRootPath, GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } private static String docTitle(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java index a6eccc29..ed80e699 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java @@ -39,7 +39,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateJsUtils { @@ -108,7 +108,7 @@ public abstract class GenerateJsUtils { } protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, importBuilder.toString().trim(), StringUtils.EMPTY_JSON, initProtocolBuilder.toString().trim()); - FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.js")), protocolManagerTemplate); + FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.js")), protocolManagerTemplate, true); } public static void createJsProtocolFile(ProtocolRegistration registration) throws IOException { @@ -131,7 +131,7 @@ public abstract class GenerateJsUtils { , writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName); var protocolOutputPath = StringUtils.format("{}/{}/{}.js", protocolOutputRootPath , GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } private static String docTitle(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java index 6fef6bde..0c62f8d0 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java @@ -39,7 +39,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateLuaUtils { @@ -106,7 +106,7 @@ public abstract class GenerateLuaUtils { protocolBuilder.append(TAB).append(StringUtils.format("protocols[{}] = {}", protocolId, name)).append(LS); } protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, StringUtils.EMPTY_JSON, StringUtils.EMPTY_JSON, fieldBuilder.toString().trim(), protocolBuilder.toString().trim()); - FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.lua")), protocolManagerTemplate); + FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.lua")), protocolManagerTemplate, true); } public static void createLuaProtocolFile(ProtocolRegistration registration) throws IOException { @@ -129,7 +129,7 @@ public abstract class GenerateLuaUtils { var protocolOutputPath = StringUtils.format("{}/{}/{}.lua" , protocolOutputRootPath, GenerateProtocolPath.getCapitalizeProtocolPath(protocolId), protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } private static String docTitle(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GenerateProtobufUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GenerateProtobufUtils.java index ce374f3a..4e4ab99f 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GenerateProtobufUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/protobuf/GenerateProtobufUtils.java @@ -42,7 +42,7 @@ import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateProtobufUtils { @@ -159,7 +159,7 @@ public abstract class GenerateProtobufUtils { builder.append("}").append(LS); var protocolOutputPath = StringUtils.format("{}/{}.proto", protocolOutputRootPath, protocolManagerName); - FileUtils.writeStringToFile(new File(protocolOutputPath), builder.toString()); + FileUtils.writeStringToFile(new File(protocolOutputPath), builder.toString(), true); } public static void createProtocols() throws ClassNotFoundException { @@ -207,7 +207,7 @@ public abstract class GenerateProtobufUtils { } var protocolOutputPath = StringUtils.format("{}/{}.proto", protocolOutputRootPath, protos.getName()); - FileUtils.writeStringToFile(new File(protocolOutputPath), builder.toString()); + FileUtils.writeStringToFile(new File(protocolOutputPath), builder.toString(), true); } } diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java index 4a153c8b..41bdf645 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java @@ -18,7 +18,6 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolDocument; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.model.Pair; import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolAnalysis; import com.zfoo.protocol.registration.ProtocolRegistration; @@ -32,14 +31,16 @@ import com.zfoo.protocol.util.StringUtils; import java.io.File; import java.io.IOException; -import java.util.*; -import java.util.stream.Collectors; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static com.zfoo.protocol.util.FileUtils.LS; import static com.zfoo.protocol.util.StringUtils.TAB; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class GenerateTsUtils { @@ -107,7 +108,7 @@ public abstract class GenerateTsUtils { } protocolManagerTemplate = StringUtils.format(protocolManagerTemplate, importBuilder.toString().trim(), initProtocolBuilder.toString().trim()); - FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.ts")), protocolManagerTemplate); + FileUtils.writeStringToFile(new File(StringUtils.format("{}/{}", protocolOutputRootPath, "ProtocolManager.ts")), protocolManagerTemplate, true); } public static void createTsProtocolFile(ProtocolRegistration registration) throws IOException { @@ -130,7 +131,7 @@ public abstract class GenerateTsUtils { , protocolId, protocolClazzName, writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName); var protocolOutputPath = StringUtils.format("{}/{}/{}.ts", protocolOutputRootPath , GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName); - FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate); + FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } private static String importSubProtocol(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/util/FileUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/FileUtils.java index 85bfe1c0..991cf8c5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/FileUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/FileUtils.java @@ -24,7 +24,7 @@ import java.util.Queue; /** * 文件操作工具类 * - * @author jaysunxiao + * @author godotg * @version 3.0 */ public abstract class FileUtils { @@ -450,7 +450,7 @@ public abstract class FileUtils { * * @param file 文件的绝对路径 * @param content 写入的内容 - * @param append 是否追加 + * @param append 是否追加 */ public static void writeStringToFile(File file, String content, boolean append) { // 字节流 @@ -477,38 +477,6 @@ public abstract class FileUtils { } } - - /** - * 以追加的方式写入一个content - * - * @param file 文件的绝对路径 - * @param content 写入的内容 - */ - public static void writeStringToFile(File file, String content) { - // 字节流 - FileOutputStream fileOutputStream = null; - // 转换流,设置编码集和解码集 .处理乱码问题,是字节到字符的桥梁 - OutputStreamWriter outputStreamWriter = null; - //处理流中的缓冲流,提高效率 - BufferedWriter bufferedWriter = null; - // 如果不用缓冲流的话,程序是读一个数据,写一个数据,这样在数据量大的程序中非常影响效率。 - // 缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了 - try { - // 以追加的方式打开文件 - fileOutputStream = openOutputStream(file, true); - outputStreamWriter = new OutputStreamWriter(fileOutputStream, StringUtils.DEFAULT_CHARSET_NAME); - bufferedWriter = new BufferedWriter(outputStreamWriter); - bufferedWriter.write(content);// 写数据 - } catch (IOException e) { - throw new RuntimeException(e); - } finally { - // Java的垃圾回收机制不会回收任何的物理资源,只会回收堆内存中对象所占用的内存 - // finally总会被执行,即使try块中和catch块中有return,也会被执行。 - // 用来显示回收数据库连接,网络连接,磁盘文件 - IOUtils.closeIO(bufferedWriter, outputStreamWriter, fileOutputStream); - } - } - public static void writeInputStreamToFile(File file, InputStream inputStream) { FileOutputStream fileOutputStream = null; try { diff --git a/protocol/src/test/java/com/zfoo/protocol/util/FileUtilTest.java b/protocol/src/test/java/com/zfoo/protocol/util/FileUtilTest.java index 75a0664b..e0e84250 100644 --- a/protocol/src/test/java/com/zfoo/protocol/util/FileUtilTest.java +++ b/protocol/src/test/java/com/zfoo/protocol/util/FileUtilTest.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.util.List; /** - * @author jaysunxiao + * @author godotg * @version 3.0 */ @Ignore @@ -45,7 +45,7 @@ public class FileUtilTest { @Test public void writeFile() { - FileUtils.writeStringToFile(new File(FileUtils.getProAbsPath() + File.separator + "test.txt"), "hello world!"); + FileUtils.writeStringToFile(new File(FileUtils.getProAbsPath() + File.separator + "test.txt"), "hello world!", true); } diff --git a/storage/src/main/java/com/zfoo/storage/util/ExcelToJsonUtils.java b/storage/src/main/java/com/zfoo/storage/util/ExcelToJsonUtils.java index ca051a46..b5bcad67 100644 --- a/storage/src/main/java/com/zfoo/storage/util/ExcelToJsonUtils.java +++ b/storage/src/main/java/com/zfoo/storage/util/ExcelToJsonUtils.java @@ -54,7 +54,7 @@ public class ExcelToJsonUtils { var outputFilePath = FileUtils.joinPath(outputDir, jsonFileName); FileUtils.deleteFile(new File(outputFilePath)); - FileUtils.writeStringToFile(new File(outputFilePath), JsonUtils.object2StringPrettyPrinter(resourceData)); + FileUtils.writeStringToFile(new File(outputFilePath), JsonUtils.object2StringPrettyPrinter(resourceData), true); } }