UE4文件读写(.txt文本文档)
————————————————————————————————
一、创建C++类继承BlueprintFunctionLibrary
二、用到的函数
读取文件
bool FFileHelper::LoadFileToString( FString& Result, const TCHAR* Filename, EHashOptions VerifyFlags, uint32 ReadFlags)
写入文件
bool FFileHelper::SaveStringToFile( const FString& String, const TCHAR* Filename, EEncodingOptions EncodingOptions, IFileManager* FileManager /*= &IFileManager::Get()*/, uint32 WriteFlags )
获得项目Content文件路径
FString FPaths::ProjectContentDir()
{
return FPaths::ProjectDir() + TEXT("Content/");
}
三、代码
在vs中编译可能会报错,在工程中编译通过就ok
.h文件
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "TxtReadAndWrite.generated.h"
/**
*
*/
UCLASS()
class READANDWRITETXT_API UTxtReadAndWrite : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "HandleTxt")
static FString ReadTxt(FString path);
UFUNCTION(BlueprintCallable, Category = "HandleTxt")
static bool WriteTxt(FString saveString, FString path);
};
.CPP文件
#include "TxtReadAndWrite.h"
#include"Runtime/Core/Public/HAL/PlatformFilemanager.h"
#include"Runtime/Core/Public/Misc/FileHelper.h"
#include"Runtime/Core/Public/Misc/Paths.h"
FString UTxtReadAndWrite::ReadTxt(FString path)
{
FString resultString;
FFileHelper::LoadFileToString(resultString, *(FPaths::ProjectContentDir() + path));
return resultString;
}
bool UTxtReadAndWrite::WriteTxt(FString saveString, FString path)
{
bool result;
result = FFileHelper::SaveStringToFile(saveString, *(FPaths::ProjectContentDir() + path));
return result;
}
四、新建txt文件
放到项目Content文件夹下面,打包后也要将.txt文件手动移动到包的Content文件夹下。
五、在蓝图中使用
写入和读取都可以了。