
问:我还是不明白StreamWriter中用到的那些{0}和{1}。
答:当你要向文件中写入字符串的时候,你经常会发现你需要打印一些变量。例如,你可能会要写一些下面这样的内容:
writer.WriteLine("My name is"+name+"and my age is"+age);
这样会很冗长而且经常用加号容易出错。使用{0}{1}更有优势:
writer.WriteLine("My name is {0} and my age is {1}",name,age);
这样代码看起来简单多了,特别是里面有很多的变量的时候。
问:为什么在包含有文件名的字符串前面写上一个@?
答:Write()和WriteLine()方法支持转义序列。这使得它很难表示文件名,因为文件名中有很多的反斜线。在字符串前面写一个@可以忽略掉转义序列。而且告诉C#在其中包含换行符,这样你就可以在字符串中键入回车,输出中也就会包含换行:
String twoLine = @“this is a string
that spans two lines。”;
问:/n和/t什么意思来着?
答:转义序列。
问:把一个字符串转换为一个字节数组是怎么回事?它是怎么工作的?
答:你可能听说过磁盘上的文件是由比特和字节组成的。向磁盘写入文件的时候,操作系统会把它当做一个字节序列来处理。硬盘上的文件都是字节组成的。读取文件的程序决定把字节解释为何种有意义的数据。
问:如果我用StreamWriter来写文件,我为什么要关心它它是否创建了一个FileStream?
答:如果你只是在写文件,那没什么。如果你要做一些复杂的事情,就有可能要和别的流合作,单单一个StreamWriter不够用了,不过不用担心,我们接下来会学到如何做到这一点。
问:如果我想要创建自己的对话框要怎样呢?可以做到吗?
答:当然可以了。你可以把一个窗体设计为你想要的样子。然后创建它的实例并调用其ShowDialog()方法来显示出来。
问:为什么用完流之后还需要关闭?
答:使用Word程序的时候打开文件的时候。有没有提示过你说“正忙”?一个程序使用一个文件的时候会把文件锁定来防止文件被别的程序访问。所以如果你不调用Close()方法,那么你的程序就有可能锁定一个文件知道程序结束为止。
本文介绍了C#中使用StreamWriter进行文件操作的技巧,包括如何利用占位符简化字符串拼接,如何正确处理文件路径中的特殊字符,以及字符串转字节数组的方法等。
1万+

被折叠的 条评论
为什么被折叠?



