2014-09-10 5 views
0

Я хочу прочитать файл data.json и преобразовать его в строку.Использование StreamReader в C#

Мой код это один:

String json = null; 

using (StreamReader sr = new StreamReader("data.json")) 
{ 
    json = sr.ReadToEnd(); 
} 

но Visual Studio говорит мне, что StreamReader не ожидает строку в качестве аргумента конструктора.

Как сообщить StreamReader, что я хочу прочитать файл data.json?

+0

в основном это говорит, что новый StreamReader («data.json») неправильно – nix86

+1

Какие приложения вы пишете? Например, это для приложения Windows Phone? –

+0

@PatrickHofman: Это зависит от используемой структуры. Например, это не в PCL. –

ответ

2

Фактически StreamReader поддерживает constructor which accepts file path для большинства платформ, но не для всех. Но в любом случае - просто использовать File.ReadAllText:

string json = File.ReadAllText("data.json"); 

Это создает StreamReader внутренне (link to source):

using (var sr = new StreamReader(path, encoding)) 
    return sr.ReadToEnd(); 

UPDATE: Вы всегда можете передать поток в StreamReader. Используйте FileStream, чтобы открыть поток для чтения файла, а затем передать его в StreamReader:

string json = null; 
using (var stream = new FileStream("data.json", FileMode.Open)) 
using (var reader = new StreamReader(stream)) 
    json = reader.ReadToEnd(); 
+0

См. Второй конструктор (http://msdn.microsoft.com/en-us/library/System.IO.StreamReader(v=vs.110).aspx). Он не поддерживается на PCL. –

+0

Я использую библиотеки классов Xamarin Portable Class, и похоже, что у меня нет System.IO.File. Поэтому я не могу сделать File.ReadAllText («data.json»); – nix86

+1

@NicolaSecco добавьте соответствующие теги к вашим вопросам –

Смежные вопросы