我如何写入一个文本文件行逐行(Unity)
本文关键字:文件 逐行 Unity 文本 一个 何写入 | 更新日期: 2023-09-27 18:02:37
public void savePreset(string doc)
{
using (StreamWriter writetext = new StreamWriter(doc))
{
writetext.Write(player.transform.position.x + ", ");
writetext.Write(player.transform.position.y + ", ");
writetext.Write(player.transform.position.z + ", ");
writetext.Write(player.transform.rotation.w + ", ");
writetext.Write(player.transform.rotation.x + ", ");
writetext.Write(player.transform.rotation.y + ", ");
writetext.Write(player.transform.rotation.z);
writetext.Close();
}
}
基本上这段代码从我的txt文件(doc)中读取,然后将我的球员旋转和位置的值写入这个txt文件。
但是,每次我运行这个savePreset时,它都会替换第一行数据。我如何保存里面的文本,使它保存一行,而不是取代第一行,每次我保存?
Write()
方法不编写尾随换行符,因此您想使用WriteLine()
来自Zohar Peled的链接:
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("This");
sw.WriteLine("is Extra");
sw.WriteLine("Text");
}
你应该使用File.AppendText(string)方法来实例化StreamWriter,而不是直接创建一个StreamWriter对象。
如果您想在每次写入内容时添加空行,只需添加+ Environment。
在每行末尾换行或使用WriteLine(string)方法。public void savePreset(string doc)
{
using (StreamWriter writetext = File.AppendText(doc))
{
writetext.Write(player.transform.position.x + ", " + Environment.NewLine );
writetext.WriteLine(player.transform.position.z + ", ");
...
...
writetext.Close();
}
}
使用System.IO
命名空间中StreamWriter
和File
类中的WriteLine
和AppendText
方法在Unity中写入内容。
请按照下面给出的链接来理解实现。
https://stackoverflow.com/a/69596704/7103882