【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文件希望逐行读取,并将每行读取到的数据作为一个数组的 ...
随机推荐
- dotnet 读 WPF 源代码笔记 渲染收集是如何触发
在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GF ...
- LVS+keepalived集群
一.Keepalived工具介绍专为LVS和HA设计的一款健康检查工具 支持故障自动切换(Failover) 支持节点健康状态检查(Health Checking) 官方网站:http://www.k ...
- C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReadWriteLock)】
多线程编程之锁的使用[互斥锁(lock)和读写锁(ReadWriteLock)] http://blog.csdn.net/sqqyq/article/details/18651335 多线程程序写日 ...
- docker学习笔记(二)--配置镜像加速器
前提:docker已经安装好 配置过程 进入至阿里云开发中心,https://dev.aliyun.com/,点击管理中心 管理中心中,点击左侧镜像加速器. 修改配置文件,使用加速器,根据我们目前Do ...
- 【MySQL】MySQL基础(SQL语句、约束、数据类型)
数据库的基本概念 什么是数据库? 用于存储和管理数据的仓库 英文单词为:DataBase,简称DB 数据库的好处? 可以持久化存储数据 方便存储和管理数据 使用了统一的方式操作数据库 -- SQL 常 ...
- umi request 请求资源库详解
umi-request: 网络请求库,基于fetch封装,兼具fetch 和 axios 的所有特点,具有缓存,超时,字符编码处理,错误处理等常用功能. 1 支持url 参数自动序列化. 2 post ...
- js 签字插件
1.jq-signature http://bencentra.github.io/jq-signature/ 支持的jquery版本低 2.HTML5 canvas http://www ...
- 重启ubuntu系统VMware tools失效处理方法
1) sudo apt-get autoremove open-vm-tools 2) Install VMware Tools by following the usual method (Virt ...
- session入库
#存储session的数据表示列结构,可作为参考#创建数据库(可选)CREATE DATABASE session;#使用创建的数据库(可选)USE session;#创建存储session的数据表( ...
- jquery 设置django全局token
通过JQUEYR中的ajaxSetup,来设置django中的token,即不需要再每次都去引用: 第一步: 先django中的html中设置 {% csrf_token %} 第二步: 新一个js ...