我如何逐行写入txt文件(Unity)

时间:2015-07-14 07:03:42

标签: c# unity3d

var geometry = new THREE.Geometry();

for (var i = 0; i < 4; i++) {
    geometry.vertices.push(point);
}

var line = new THREE.Line(geometry, new THREE.LineBasicMaterial({}));

基本上这段代码从我的txt文件(doc)读取,然后将我的播放器旋转和位置的值写入此txt文件。

但是,每次运行此savePreset时,这都会替换第一行数据。 如何将文本保存在内部以便逐行保存而不是每次保存时替换第一行?

2 个答案:

答案 0 :(得分:2)

Write()方法不会写一个尾随换行符,因为您要使用WriteLine()

来自Zohar Peled的link

    using (StreamWriter sw = File.AppendText(path)) 
    {
        sw.WriteLine("This");
        sw.WriteLine("is Extra");
        sw.WriteLine("Text");
    }   

答案 1 :(得分:0)

您应该使用File.AppendText(string)方法实例化StreamWriter,而不是直接创建StreamWriter对象。

如果你想在每次写东西时添加一个空行,只需在每行末尾添加+ Environment.NewLine或使用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();
        }
    }