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. 查看所有日志命令:journalctl

    journalctl命令作用:实时查看所有日志(内核日志和应用日志) 语法格式: journalctl [参数] 常用参数:-k 查看内核日志-b 查看系统本次启动的日志-u 查看指定服务的日志-n ...

  2. SpringBoot快速集成SpringBootAdmin管控台监控服务

    SpringBootAdmin是一个针对 Spring Boot 的 Actuator 接口进行 UI 美化封装的监控工具,它可以在列表中浏览所有被监控 spring-boot 项目的基本信息.详细的 ...

  3. K8s 系列(三) - 如何配置 etcd https 证书?

    在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使 ...

  4. VS dll 引用依赖

    在公司实习过程中,经常遇到三个问题: 开发环境 dll引用依赖 dll版本控制 一般公司都会配置开发/测试/Lab/线上四个环境,之后不管时开发什么项目,都与环境分不开边.这个和dll版本控制暂且记下 ...

  5. noip模拟19/20

    这两场考试大部分的题都考过,然鹅有的 \(trick\) 忘了,有的当时咕了(虽然现在还咕着) 首先是 \(v\) 这道题需要加一个小优化,对于较小的状态应该直接用数组记录,较大的再用 map 记 然 ...

  6. eclipse的C/C++开发搭建

    环境 宿主机:ubuntu 16.04 交叉编译:gcc-linaro-4.9-2014.11 ubuntu自带源 eclipse 安装(想使用新版直接跳过) 安装eclipse sudo apt-g ...

  7. MongoDB(9)- 文档查询操作之 find() 的简单入门

    find() MongoDB 中查询文档使用 find() find() 方法以非结构化的方式来显示所要查询的文档 语法格式 db.collection.find(query, projection) ...

  8. Gitlab(1)- 简单介绍

    什么是 Gitlab 一个开源分布式版本控制系统 开发语言:Ruby 功能:管理项目源代码.版本控制.代码复用与查找.权限管控 Git 家族成员 Git:是一种版本控制系统,是一个命令,是一种工具 G ...

  9. web、html概念快速入门

    1.C/S和B/S 总结,理论上如果硬件不考虑(带宽.(图像资源加载)显卡等),B/S可以完全替代C/S: 2.静态资源和动态资源 其中,访问时动态资源,服务器后台也会通过视图解析器转换成静态资源,因 ...

  10. eclipes常见操作总结及项目2和3经验总结

    eclipes常见操作总结及项目2经验总结 eclipes提示: 打开eclipes 选择window->perference->java->editor->content a ...