2014-09-10 3 views
0

파일 data.json을 읽고 문자열로 변환하고 싶습니다.C#에서 StreamReader 사용

내 코드는 하나입니다

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을 사용 : 그것은 내부적으로 (link to source) StreamReader를 생성

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

:

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

UPDATE를 : 당신은 항상 StreamReader로 스트림을 전달할 수 있습니다. StreamReader에 전달 한 후 파일을 읽기위한 스트림을 엽니 다 FileStream를 사용하여 :

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 Libraries를 사용하고 있는데 System.IO.File이없는 것 같습니다. 그래서 할 수 없어 File.ReadAllText ("data.json"); – nix86

+1

@ NicolaSecco 질문에 적절한 태그를 추가하십시오. –