当我们在c#中使用隔离存储时,我们有两个来自isoFileWriter的函数。有人可以解释isoFileWriter.Write()
和isoFileWriter.WriteLine()
我正在使用以下代码:
IsolatedStorageFile myspace = IsolatedStorageFile.GetUserStoreForApplication();
myspace.CreateDirectory("Emotions");
using (var isoFileStream = new IsolatedStorageFileStream("Emotions\\history.txt", FileMode.OpenOrCreate, myspace))
{
using (var isoFileWriter = new StreamWriter(isoFileStream))
{
isoFileWriter.WriteLine();
}
}
答案 0 :(得分:3)
这是StreamWriter.Write和StreamWriter.WriteLine。
这两种方法的主要区别在于WriteLine
会在文件中写一个新行,其中Write
只会写入数据(没有换行符号)。
调用isoFileWriter.WriteLine()
只会在文件中写一个新行。如果您在传递参数时调用WriteLine
,即:isoFileWriter.WriteLine("Foo")
,则会写入Foo
后跟一个新行。另一方面,isoFileWriter.Write("Foo")
只会在没有换行符的情况下写Foo
。
答案 1 :(得分:1)
Write() vs WriteLine()
典型的文本流。不同之处是WriteLine
在文本
iso.Write('a');
iso.Write('b');
将输出ab
iso.WriteLine('a'); //puts a new line after a
iso.Write('b'); //the next output will be on the same line as b
将输出
a
b
答案 2 :(得分:0)
类System.IO.StreamWriter
用于以特定编码将字符写入流。我相信最好使用类StreamWriter
将文本追加或写入特定文件并稍后控制编写器(类)。
考虑使用以下示例创建名为StreamWriter
的{{1}}
_TextWriter
以及使用以下示例创建的另一个名为StreamWriter _TextWriter = new StreamWriter(Path)
的{{1}}
StreamWriter
如果您注意到,我们的_TextWriter2
名为StreamWriter _TextWriter2 = new StreamWriter(Path, true);
有两个参数:StreamWriter
和布尔_TextWriter2
在这里使用Path
只是告诉班级它将 APPEND 字符用于该类可能创建或已存在的文件。否则,如果将其留空或插入true
,则文件将被覆盖。
以下是一个示例
考虑使用包含两行以及以下内容的文件名true
这是第一行
这是第二行
使用以下代码,您的文档中只有一行(false
) Hello
Path
通过使用以下代码,您的文档(Path
)中将包含三行代表以下内容:
这是第一行
这是第二行
你好
_TextWriter.WriteLine("Hello");
现在让我们转到您的问题,Path
和_TextWriter2.WriteLine("Hello");
答案很简单,如果Write()
将WriteLine()
设置为Write()
的布尔值,则使用方法true
会将字符写入特定流的最后一行。但会覆盖如果将布尔append
留空或将其设置为append
,则为特定文件的内容。
以下是一个示例
请考虑以下
false
这是我的第一行
这是我的第二行
您有以下代码:
D:\MyDocument.txt
您期望发生什么?
文件StreamWriter _TextWriter = new StreamWriter(@"D:\MyDocument.txt");
_TextWriter.Write("Hello");
_TextWriter.Close(); //Save and Close the StreamWriter
的内容将更改为以下内容
您好
这是因为您没有在上面的代码中指定是否要追加,并且因为追加的默认值是D:\MyDocument.txt
,false
将不会附加到文件中,因此文件将被新内容覆盖。
另一个例子
请考虑以下
StreamWriter
这是我的第一行
这是我的第二行
您有以下代码:
D:\MyDocument.txt
您期望发生什么?
文件StreamWriter _TextWriter = new StreamWriter(@"D:\MyDocument.txt", true);
_TextWriter.Write("Hello");
_TextWriter.Close(); //Save and Close the StreamWriter
的内容将更改为以下
这是我的第一行
这是我的第二行你好
该文件未被单词D:\MyDocument.txt
覆盖,因为您已将布尔值Hello
设置为append
,但您是否注意到了这一点?文件的第二行已更改为
这是我的第一行
这是我的第二行你好
这意味着true
被附加到可用的最后一行,这是因为您已使用Hello
将文本附加到可用的最后一行。
所以,如果您不希望这种情况发生,您可以使用Write()
,它将首先在文件末尾创建一行。然后,使用您指定的字符附加或覆盖文件。