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的更多相关文章

  1. [转]C#读写TEXT文件

    1.使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using Sys ...

  2. [转载]C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...

  3. 在.net中读写config文件的各种方法

    阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...

  4. C#读写xml文件的常用方法

    已知有一个XML文件(bookshop.xml)如下: <?xml version="1.0" encoding="gb2312" ?> <b ...

  5. PHP读写XML文件的四种方法

    PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...

  6. python读写操作文件

    with open(xxx,'r,coding='utf-8') as f:   #打开文件赋值给F ,并且执行完了之后不需要 f.close(). 在Python 2.7 及以后,with又支持同时 ...

  7. C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...

  8. C# 读写INI 文件

    INI 格式: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = V ...

  9. WPF 读写TxT文件

    原文:WPF 读写TxT文件 文/嶽永鹏 WPF 中读取和写入TxT 是经常性的操作,本篇将从详细演示WPF如何读取和写入TxT文件. 首先,TxT文件希望逐行读取,并将每行读取到的数据作为一个数组的 ...

随机推荐

  1. Python之requests模块-cookie

    cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...

  2. SQL Server数据表设计编辑后无法保存处理办法

    关于使用 SQL Server 企业管理器,表[设计]界面,修改数据表字段或类型无法保存的问题处理过程: 使用SQL Server数据库的你是否遇到过每次数据库编辑工具内点击设计修改表字段或类型要保存 ...

  3. MapperScannerConfigurer之sqlSessionFactoryBeanName注入方式

    Spring整合Mybatis时,项目启动时报错:(MapperScannerConfigurer之sqlSessionFactoryBeanName注入方式) pringframework.bean ...

  4. http接口实现附件对接

    1.推送附件 filebody /** * 推送附件方法 * @param args */ public static void main2(String[] args){ CloseableHttp ...

  5. SprinBoot-SpringData-整合

    目录 SpringData 整合JDBC JDBCTemplate 整合Druid 配置数据源 配置Druid数据源监控 整合MyBatis 整合测试 整合Redis 测试整合 序列化配置 自定义re ...

  6. 查看elasticsearch版本的方法

    查看elasticsearch版本的方法: 1.elasticsearch已经启动的情况下 使用curl -XGET localhost:9200命令查看: "version" : ...

  7. scrum项目冲刺_day10总结

    摘要:今日完成任务. 1.发布功能实现 2.导航还在进行 总任务: 一.appUI页面(已完成) 二.首页功能: 1.图像识别功能(已完成) 2.语音识别功能(已完成) 3.垃圾搜索功能(基本完成) ...

  8. 【简单数据结构】并查集--洛谷 P1111

    题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你 ...

  9. Shell系列(38)- 数组操作→取值、遍历、替换、删除

    引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...

  10. 超详细的VMware安装ubuntu教程

    确定,然后重启.