C#中对应于C++中的ifstream/ofstream的是什么?

3

我知道这个问题可能以前已经被问过了,但我在SO上找不到相关的信息,而且在Google上搜索也没有得到清晰的答案。

我需要知道C#中等同于C++的ifstream/ofstream的内容。

例如,如果我有以下C++代码:

ifstream input("myFile.txt");
ofstream output;
output.open("out.txt");

请问C#中的等效语句是什么?

我找到了一个网站,它说(至少对于文件输入部分)等效语句是这样的:

using System.IO;

FileStream fs = new FileStream("data.txt", FileMode.Open, FileAccess.Read);

我尝试放置这个:

FileStream fs = new FileStream(input, FileAccess.Read);

我的VS中没有"FileMode",因为VS没有识别它。而"input"是参数中的一个字符串,保存着输入文件名的字符串值(例如 - "myFile.txt")。

我知道我一定错过了某些愚蠢和微小的东西,但我无法弄清楚是什么。任何关于此的帮助将不胜感激!

我正在开发VS2010、C#-4.0、WPF API。


1
MSDN是你的好朋友:http://msdn.microsoft.com/en-us/library/system.io.filestream.aspx。同时,还要看一下File类的快捷方式:Open、OpenText、OpenOrCreate等等。如果你想要类似RAII的东西,可以使用using语句:http://msdn.microsoft.com/en-us/library/yh598w02.aspx。 - R. Martinho Fernandes
@Martinho Fernandes - 非常感谢您提供的链接!虽然我感觉自己像个彻底的失败者。只需要包含“System.IO.FileStream”库,而我只包含了“System.IO”库。愚蠢的新手错误... - AmbiguousX
2个回答

4

FileStream是你想要的。可以查看MSDN上有关流组合的示例此处


注:FileStream是.NET Framework中用于处理文件输入输出的类,MSDN是微软官方文档网站。

谢谢您的回复,尽管@Martinho Fernandes已经给了我所需的答案。我希望我能够标记多个答案为已接受的(此外,我希望我能够将评论标记为已接受的答案),但无论如何感谢您的回复! - AmbiguousX
1
没问题,很高兴你得到了你需要的东西。 - Steve Townsend

1

我认为StreamReader/StreamWriter提供了类似于C++的ifstream/ofstream的功能。FileStream用于处理byte[]数据,而StreamReader/StreamWriter用于处理文本。

var writer = new StreamWriter(File.OpenWrite("myFile.txt");
writer.WriteLine("testing");
writer.Close();
var reader = new StreamReader(File.OpenRead("myFile.txt");
while ( !reader.EndOfStream )
{
    var line = reader.ReadLine();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接