【UE4 C++】读写Text文件 FFileHelper
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);
【UE4 C++】读写Text文件 FFileHelper的更多相关文章
- [转]C#读写TEXT文件
1.使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using Sys ...
- [转载]C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...
- 在.net中读写config文件的各种方法
阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...
- C#读写xml文件的常用方法
已知有一个XML文件(bookshop.xml)如下: <?xml version="1.0" encoding="gb2312" ?> <b ...
- PHP读写XML文件的四种方法
PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...
- python读写操作文件
with open(xxx,'r,coding='utf-8') as f: #打开文件赋值给F ,并且执行完了之后不需要 f.close(). 在Python 2.7 及以后,with又支持同时 ...
- C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...
- C# 读写INI 文件
INI 格式: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = V ...
- WPF 读写TxT文件
原文:WPF 读写TxT文件 文/嶽永鹏 WPF 中读取和写入TxT 是经常性的操作,本篇将从详细演示WPF如何读取和写入TxT文件. 首先,TxT文件希望逐行读取,并将每行读取到的数据作为一个数组的 ...
随机推荐
- MongoDB(10)- 查询嵌套文档
插入测试数据 db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: & ...
- Java-Bean Validation后端校验总结
Validation Information resource: SpringBoot Docs: 2.8.9. @ConfigurationProperties Validation url: ht ...
- 获取input对应的的选项
需求是把所有题目中的选项ABCDEF等对应保存到后台, 这个问卷中有多选项和单选项 var data = {}; $(".u-box .u-item").each(function ...
- tomcat快速发布备份脚本
一.说明 我们每次在tomcat中发布新war包,总是要经历[备份-停机-上传-启动]这几个部分,其中上传的环节和网速有极大相关性,要是网速很慢,那么整个发布的时间就会很长. 如果我们不借助于自动化发 ...
- 硕盟SM-H2V1 HDMI转VGA 笔记本台式主机HDMI转VGA显示器转接头
硕盟SM-G2V1 HDMI转VGA高清转换器一款采用优质芯片的HDMI转VGA转换器,快速传输众享1080P的高清画质显示,而且HDMI转VGA高清转换器,采用24k镀金工艺,耐磨.耐腐蚀性强,这 ...
- 内部类访问外部类成员变量,使用外部类名.this.成员变量
public class Outer { private int age = 12; class Inner { private int age = 13; public void print() { ...
- 【原创】【长期更新】【未完待续】自制vector类型
继<自制string类型>以来的第二篇自制类型的文章.马上要开学了,时间也不多了,争取在今年写完吧. 目录 一,vector类型简单介绍 1.简介 1.1.STL 1.2.vector 2 ...
- 【OI】计算分子量 Molar mass UVa 1586 题解
题目:(由于UVa注册不了,还是用vjudge) https://vjudge.net/problem/UVA-1586 详细说明放在了注释里面.原创. 破题点在于对于一个元素的组合(元素+个数),只 ...
- mysql事务干货详解
说明: mysql是现在行业中流行的关系型数据库,它的核心是存储引擎.mysql的存储引擎有很多种我们可以通过命令查看如下 SHOW ENGINES 不同版本得到的数据不一样,我们今天说的事务是在 M ...
- TP生成二维码插件
安装 composer require endroid/qrcode 使用: use Endroid\QrCode\QrCode 然后 这个类库要改一下 在路径:你的项目路径\vendor\endro ...