unity c# stringlist 保持txt文本
时间: 2023-07-11 11:20:05 浏览: 76
将一个字符串列表保存到文本文件中,可以使用 C# 中的 StreamWriter 类。以下是一个示例代码,展示如何将字符串列表保存到文本文件中:
```csharp
using System.Collections.Generic;
using System.IO;
// 创建一个字符串列表
List<string> stringList = new List<string>();
stringList.Add("hello");
stringList.Add("world");
// 创建一个文件流,用于将数据写入文本文件
string filePath = "path/to/file.txt";
StreamWriter writer = new StreamWriter(filePath);
// 遍历字符串列表,将每个元素写入文件
foreach (string str in stringList)
{
writer.WriteLine(str);
}
// 关闭文件流
writer.Close();
```
上述代码中,首先创建了一个字符串列表,然后创建了一个文件流,并使用 StreamWriter 类将数据写入文件。在遍历字符串列表时,使用 WriteLine 方法将每个元素写入文件,最后关闭文件流。
需要注意的是,在使用 StreamWriter 类时,需要手动调用 Close 方法来关闭文件流。如果不关闭文件流,可能会导致数据无法被正确地保存到文件中。
相关问题
unity c# list导入txt文本
在Unity中,读取txt文件的方式与C#中的方式是相同的。你可以使用以下代码来读取txt文件并将其存储在List中:
```csharp
using System.IO;
using System.Collections.Generic;
using UnityEngine;
public class TxtReader : MonoBehaviour
{
public List<string> ReadTxt(string filePath)
{
List<string> dataList = new List<string>();
StreamReader reader = new StreamReader(filePath);
string line;
while ((line = reader.ReadLine()) != null)
{
dataList.Add(line);
}
reader.Close();
return dataList;
}
}
```
在使用时,你可以将以上代码保存在一个名为 `TxtReader.cs` 的文件中,并将其作为一个组件添加到场景中的任意GameObject中。然后,你可以在其他脚本中通过获取 `TxtReader` 组件来读取txt文件。例如:
```csharp
public class Example : MonoBehaviour
{
public string filePath = "Assets/Data/data.txt";
private TxtReader txtReader;
void Start()
{
txtReader = GetComponent<TxtReader>();
List<string> dataList = txtReader.ReadTxt(filePath);
// Do something with the dataList
}
}
```
在以上代码中,我们首先获取了 `TxtReader` 组件,然后调用了 `ReadTxt` 方法来读取txt文件中的数据,并将其存储在一个List中。在读取完毕后,你可以根据需要对List中的数据进行操作。
Unity首先删除C:\Kistler\zhengti shuju1.txt文本文档里面的内容,接着读取C:\Kistler\DynoWare\Data文件下的所有文本文档的名称,将其文本文档名称写入C:\Kistler\wenben mingcheng.txt,再次执行该代码时,将从C:\Kistler\DynoWare\Data文件下读取的文本文档名称与C:\Kistler\wenben mingcheng.txt里面的文本文档名称进行对比,最后将与其不同的文本文档名称的文本文档里面的内容写入C:\Kistler\zhengti shuju1.txt。整体代码
以下是一个实现上述功能的示例代码:
```c#
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class TextFileReader : MonoBehaviour
{
private const string baseDirectory = "C:/Kistler";
private const string dataFolder = "C:/Kistler/DynoWare/Data";
private const string textFileListPath = "C:/Kistler/wenben mingcheng.txt";
private const string targetTextFilePath = "C:/Kistler/zhengti shuju1.txt";
void Start()
{
// 删除目标文件里的内容
File.WriteAllText(targetTextFilePath, "");
// 获取数据文件夹下所有文本文件的名称
string[] dataFiles = Directory.GetFiles(dataFolder, "*.txt");
// 获取已记录的文本文件名称列表
List<string> recordedTextFiles = new List<string>();
if (File.Exists(textFileListPath))
{
string[] lines = File.ReadAllLines(textFileListPath);
recordedTextFiles.AddRange(lines);
}
// 将未记录的文本文件的内容写入目标文件
foreach (string dataFile in dataFiles)
{
string fileName = Path.GetFileName(dataFile);
if (!recordedTextFiles.Contains(fileName))
{
recordedTextFiles.Add(fileName);
string fileContent = File.ReadAllText(dataFile);
File.AppendAllText(targetTextFilePath, fileContent);
}
}
// 更新已记录的文本文件名称列表
File.WriteAllLines(textFileListPath, recordedTextFiles);
}
}
```
需要注意的是,这个示例代码是基于 Windows 操作系统的路径格式编写的,如果在其他操作系统上运行需要修改路径。此外,该代码还存在一些容错性问题,例如如果目标文件或列表文件不存在会导致异常等,需要根据实际情况进行处理。
阅读全文