C # Эквивалентно ifstream / ofstream в C ++ - PullRequest
3 голосов
/ 12 января 2011

Я знаю, что, возможно, об этом уже спрашивали, но я нигде не могу найти его здесь на 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);

У меня нет"FileMode" в моем, потому что VS не распознал его.И «input» - это строка в параметрах, которая содержит строковое значение имени входного файла (например, «myFile.txt»).

Я знаю, что мне не хватает чего-то глупого и незначительного, но я не могу понять, что это такое.Буду признателен за любую помощь в этом!

Я занимаюсь разработкой в ​​VS2010, C # -4.0, WPF API.

Ответы [ 2 ]

4 голосов
/ 12 января 2011

FileStream - это то, что вы хотите.Взгляните на пример MSDN по составу потока здесь .

1 голос
/ 04 ноября 2012

Мне кажется, что StreamReader / StreamWriter предлагают схожую функциональность с ifstream / ofstream в c ++. 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();
}
...