首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileStream创建

FileStream创建
EN

Stack Overflow用户
提问于 2012-08-21 22:22:26
回答 6查看 50.3K关注 0票数 14

是这样的语法吗

代码语言:javascript
复制
 FileStream fs = new FileStream(strFilePath, FileMode.Create);

和这个一样吗?

代码语言:javascript
复制
FileStream fs = File.Create(strFilePath);

如果是,哪一个更好?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-21 22:26:56

根据JustDecompile的说法,这很重要,因为File.Create最终会调用:

代码语言:javascript
复制
new FileStream(path, 
               FileMode.Create, 
               FileAccess.ReadWrite, 
               FileShare.None, 
               bufferSize, 
               options);

使用bufferSize 4096 (默认值)和FileOptions.None (也与FileStream构造函数相同),但是FileShare标志是不同的: FileStream构造函数使用FileShare.Read创建流。

所以我说:如果你不关心其他选项,那就考虑可读性,使用File.Create(string)

票数 13
EN

Stack Overflow用户

发布于 2012-08-21 22:27:35

在我看来,我使用这个:

代码语言:javascript
复制
using (FileStream fs = new FileStream(strFilePath, FileMode.Create))
{    
    fs.Write("anything");
    fs.Flush();
}

它们基本上做同样的事情,但这一个创建文件,并在创建/写入模式下打开它,您可以设置缓冲区大小和所有参数。

代码语言:javascript
复制
new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None, bufferSize, options);

对于File.Create,它包装了所有这些默认的缓冲区和参数。使用我的新FileStream(strFilePath,FileMode.Create),您将有更好的灵活性和管理能力;但在这一点上,如果您想要更多的可读性或管理选项,那么它更多是个人的选择!

票数 8
EN

Stack Overflow用户

发布于 2012-08-21 22:32:11

第二个只为流使用了不同的FileMode:

http://msdn.microsoft.com/en-us/library/47ek66wy.aspx

管理此方法的默认值!

但是使用using语句,所以任何资源都将以正确的方式释放!

代码语言:javascript
复制
using (FileStream fs = new FileStream(strFilePath, FileMode.Create))
{
    // HERE WHAT YOU WANT TO DO!
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12056976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档