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. Aggressor Script 开发-Powershell 免杀

    转载https://www.jianshu.com/p/f158a9d6bdcf 前言 在接触到Cobalt Strike的时候就知道有各种插件,想象着那天也可以自己学习编写一个.在之前分析Cobal ...

  2. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(1):二阶与三阶行列式、全排列及其逆序数

    @ 目录 前言 二阶与三阶行列式 二阶行列式 三阶行列式 全排列及其逆序数 全排列 逆序数 结语 前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ...

  3. L2TP协议简介

    传送门:L2TP代码实现 1. L2TP 概述 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是 VPDN(Virtual Private Dial-up Networ ...

  4. aes加解密前后端-前端

    一.ajax请求前端 f12请求和响应参数效果: 1.在前端封装ajax的公共Util的js中,封装ajax请求的地方,在beforeSend方法和成功之后的回调函数success方法中: var p ...

  5. php图片处理库

    <?php namespace app\common\library; /** * include 'imagick.class.php'; $image = new lib_image_ima ...

  6. Elaticsearch倒排索引

    ES倒排索引基本原理 索引(index)可以分为正序索引(Forward Indexes)和倒排索引(Inverted Index)两种.在关系型数据库中使用索引可以避免数据检索走全表扫描,将检索的时 ...

  7. ~/.emacs emacs 配置文件

    windows ~/.emacs (when (>= emacs-major-version 24) (require 'package) (add-to-list 'package-archi ...

  8. 关于panic ,主协程的recover 是无法获取 子协程的panic 的

    一.子协程的panic,只能在子协程中处理 下面的代码,main 函数 无法获取panic package main import ( "fmt" "time" ...

  9. P6847-[CEOI2019]Magic Tree【dp,线段树合并】

    正题 题目链接:https://www.luogu.com.cn/problem/P6847 题目大意 \(n\)个点的一棵树上,每个时刻可以割掉一些边,一些节点上有果实表示如果在\(d_i\)时刻这 ...

  10. P3335-[ZJOI2013]蚂蚁寻路【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P3335 题目大意 给出\(n\times m\)的网格,每个格子有权值.一个回路在格子的边上,要求有\(2\tim ...