2015-05-08 51 views
-1

我有一個問題「的WriteLine」不工作

我使用此代碼保存爲txt文件,怎麼做不覆蓋文件,但將在未來時間的函數調用一行一行寫?

命令WriteLine不起作用。 寫入覆蓋文件。

private async Task WriteToFile() 
{ 
    string ResultString = string.Join("\n", locationData.ToArray()); 

    byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(ResultString); 

    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; 
    var dataFolder = await local.CreateFolderAsync("DataFolder", CreationCollisionOption.OpenIfExists); 
    var file = await dataFolder.CreateFileAsync("DataFile.txt", CreationCollisionOption.OpenIfExists); 

    using (var s = await file.OpenStreamForWriteAsync()) 
    { 
     s.Write(fileBytes, 0, fileBytes.Length); 
    } 
} 

我爲我的應用使用了Windows Phone 8.1。

+1

你在哪裏調用'的WriteLine寫入和WriteLine'是不一樣的東西.. – MethodMan

+1

如果你問怎麼不是每個函數調用覆蓋文件S,這是完全相同的副本[如何追加一個文件,在Windows Phone 8中異步](http://stackoverflow.com/questions/15057768/how-to-append-a-file-asynchronously-in-windows-phone-8) –

回答

0

您應該能夠使用:

await FileIO.AppendTextAsync(file, ResultString); 
0

尋找到流的末尾做寫之前,從OpenStreamForWriteAsync返回。

s.Seek(0, SeekOrigin.End); 
using (StreamWriter writer = new StreamWriter(stream)) 
{ 
    await writer.WriteAsync(ResultString); 
    await writer.FlushAsync(); 
}