【UE4 C++】读写Text文件 FFileHelper
2024-10-12 10:18:56
CoreMisc.h
读取
FFileHelper::LoadFileToString
读取全部内容,存到 FString
FString TextPath = FPaths::ProjectDir() + TEXT("DataDrive/Dialogue.txt");
TextPath = FPaths::ConvertRelativePathToFull(TextPath);
if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*TextPath))
{
FString TextData;
FFileHelper::LoadFileToString(TextData, *TextPath);
UE_LOG(LogTemp, Warning,TEXT("%s"), *TextData);
}
FFileHelper::LoadFileToStringArray
读读取全部内容,存到 TArray中,每个元素代表一行
FString TextPath = FPaths::ProjectDir() + TEXT("DataDrive/Dialogue.txt");
TextPath = FPaths::ConvertRelativePathToFull(TextPath);
if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*TextPath))
{
TArray<FString> TextData;
FFileHelper::LoadFileToStringArray(TextData, *TextPath);
int32 line = 0;
for (FString lineContent : TextData)
{
UE_LOG(LogTemp, Warning, TEXT("[line %d] %s"), ++line, *lineContent);
}
}
写入
SaveStringToFile
字符串写入文件,需要手动嘉 \n 换行
注意字符编码
注意WriteFlags,参考下面 EFileWrite 枚举
Syntax
enum EFileWrite
{
FILEWRITE_NoFail = 0x01,
FILEWRITE_NoReplaceExisting = 0x02,
FILEWRITE_EvenIfReadOnly = 0x04,
FILEWRITE_Append = 0x08,
FILEWRITE_AllowRead = 0x10
}; bool FFileHelper::SaveStringToFile( FStringView String, const TCHAR* Filename, EEncodingOptions EncodingOptions, IFileManager* FileManager /*= &IFileManager::Get()*/, uint32 WriteFlags )
代码实现
FString TextContent = TEXT("明知无法战胜,明知毫无意义,但还是持续挑战着的姿态,那正是我的过错。----英灵卫宫 \n");
FFileHelper::SaveStringToFile(TextContent, *TextPath, FFileHelper::EEncodingOptions::ForceUTF8, &IFileManager::Get(), EFileWrite::FILEWRITE_Append); TextContent = TEXT("束缚于肉体中的你们,永远无法满足 ----吉尔伽美什 \n");
FFileHelper::SaveStringToFile(TextContent, *TextPath, FFileHelper::EEncodingOptions::ForceUTF8, &IFileManager::Get(), EFileWrite::FILEWRITE_Append);
支持导出CSV
UserInfoDataTable = LoadObject<UDataTable>(this, TEXT("DataTable'/Game/CPPFunction/DataDrive/DT_UserInfo.DT_UserInfo'"));
if (UserInfoDataTable)
{
FString CSVString = UserInfoDataTable->GetTableAsCSV();
FString CSVPath = FPaths::ProjectDir() + TEXT("DataDrive/UserInfo2.csv");
FFileHelper::SaveStringToFile(CSVString, *CSVPath, FFileHelper::EEncodingOptions::ForceUTF8);
}
SaveStringArrayToFile
字符串数组写入文件,自动换行
如果保存中文乱码,点击高级保存为UTF8格式
Syntax
bool FFileHelper::SaveStringArrayToFile( const TArray<FString>& Lines, const TCHAR* Filename, EEncodingOptions EncodingOptions, IFileManager* FileManager, uint32 WriteFlags )
代码实现
FString TextPath = FPaths::ProjectDir() + TEXT("DataDrive/FateNight.txt");
TextPath = FPaths::ConvertRelativePathToFull(TextPath);
TArray<FString> TextLines;
TextLines.Add(TEXT("钢铁为身,而火焰为血。"));
TextLines.Add(TEXT("手制之剑已达千余,纵横无数战场而不败。"));
TextLines.Add(TEXT("不知生。"));
TextLines.Add(TEXT("亦不知死。"));
TextLines.Add(TEXT("未曾一次败退。"));
TextLines.Add(TEXT("常独自一人立于剑丘之巅独醉于胜利中。"));
TextLines.Add(TEXT("然而 留下的只有虚无。"));
TextLines.Add(TEXT("故此 此生已无意义。"));
TextLines.Add(TEXT("则此躯 注定为剑而生。"));
TextLines.Add(TEXT("故我祈求——无限之剑制(Unlimited Blade Works)"));
FFileHelper::SaveStringArrayToFile(TextLines, *TextPath,FFileHelper::EEncodingOptions::ForceUTF8);
最新文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
- golang print struct with key
- 用jquery编写的tab插件
- 《深入理解Nginx》阅读与实践(四):简单的HTTP过滤模块
- 那些OVER的封装
- Codeforces Round #195 (Div. 2) D题Vasily the Bear and Beautiful Strings
- EventHandler委托与自定义委托
- Postgresql 存储过程调试 1
- linux连接静态库
- Binder机制
- git log
- js选中checkbox赋值给文本框
- android ScrollView 充满屏幕
- HDU_2055——刷题不要使用fflush()
- v4l2采集视频和图片源码
- Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示
- PHP - 目录与文件
- Oracle中四种循环(GOTO、For、While、Loop)
- html5 -----audio标签
- Markdown使用简单示例
热门文章
- 源码编译安装nginx及设置开机启动项
- DorisDB升级为StarRocks,全面开源!
- JDK1.8源码(五)——java.util.Vector类
- MFGTool2 的使用
- Python - //和/的区别
- JS021. 拦截事件的显式处理与默认动作(Web API: event.preventDefault)
- 依赖注入Bean属性——手动装配Bean
- CodeForce-808C Tea Party(结构体排序贪心)
- CodeForce-812B Sagheer, the Hausmeister(DFS)
- 【PHP数据结构】在学数据结构和算法的时候我们究竟学的是啥?