feat: 文件工具添加文本输出函数,调整逐行

This commit is contained in:
TsMask
2025-05-20 11:44:09 +08:00
parent f011fb5153
commit 72c688e178
7 changed files with 48 additions and 22 deletions

View File

@@ -6,25 +6,23 @@ import (
"os"
"path/filepath"
"strings"
"be.ems/src/framework/logger"
)
// WriterFileTXT 写入txt文件 sep 分割符号 需要转换数据
// WriterFileTXTLine 逐行写入txt文件 sep 分割符号 需要转换数据
//
// 例如:
// data := [][]string{}
// data = append(data, []string{"姓名", "年龄", "城市"})
// data = append(data, []string{"1", "2", "3"})
// err := file.WriterFileTXT(data, filePath)
func WriterFileTXT(data [][]string, sep string, filePath string) error {
func WriterFileTXTLine(data [][]string, sep string, filePath string) error {
// 获取文件所在的目录路径
dirPath := filepath.Dir(filePath)
// 确保文件夹路径存在
err := os.MkdirAll(dirPath, 0775)
if err != nil {
logger.Errorf("CreateFile MkdirAll %v", err)
return err
}
// 创建或打开文件
@@ -44,21 +42,19 @@ func WriterFileTXT(data [][]string, sep string, filePath string) error {
// 将缓冲区中的数据刷新到文件中
err = writer.Flush()
if err != nil {
logger.Errorf("CreateFile Flush %v", err)
return err
}
return nil
}
// ReadFileTXT 读取Txt文件sep 分割符号 转换数组数据
func ReadFileTXT(sep string, filePath string) [][]string {
// ReadFileTXTLine 逐行读取Txt文件sep 分割符号 转换数组数据
func ReadFileTXTLine(sep string, filePath string) [][]string {
// 创建 map 存储数据
arr := make([][]string, 0)
// 打开文本文件
file, err := os.Open(filePath)
if err != nil {
logger.Errorf("OpenFile Open %v", err)
return arr
}
defer file.Close()
@@ -66,7 +62,6 @@ func ReadFileTXT(sep string, filePath string) [][]string {
// 创建一个 Scanner 对象,用于逐行读取文件内容
scanner := bufio.NewScanner(file)
if scanner.Err() != nil {
logger.Errorf("OpenFile NewScanner %v", scanner.Err())
return arr
}
@@ -78,3 +73,32 @@ func ReadFileTXT(sep string, filePath string) [][]string {
return arr
}
// WriterFileTXT 写入txt文件
//
// 例如:
// err := file.WriterFileTXT("", filePath)
func WriterFileTXT(text string, filePath string) error {
// 获取文件所在的目录路径
dirPath := filepath.Dir(filePath)
// 确保文件夹路径存在
err := os.MkdirAll(dirPath, 0775)
if err != nil {
return err
}
// 创建或打开文件
file, err := os.Create(filePath)
if err != nil {
return err
}
defer file.Close()
// 将缓冲区中的数据刷新到文件中
_, err = file.WriteString(text)
if err != nil {
return err
}
return nil
}