스트림에서 TextReader를 받으시겠습니까?


81

포함 된 텍스트 파일을 읽으려고 System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resource);하는데 Stream. 포함 된 자원은 그래서 텍스트 파일, 어떻게 내가이 돌 수있다 StreamTextReader?

답변:


183
TextReader tr = new StreamReader(stream);

1
이 할당에서 인코딩은 바이트에서 문자로 변환하는 데 사용됩니다. 기본적으로 인코딩이 감지됩니다.
R. Schreurs

18

A StreamReader는의 하위 클래스 TextReader이므로 다음을 수행 할 수 있습니다.

using(var stream = System.Reflection.Assembly.GetExecutingAssembly().
    GetManifestResourceStream(resource))
using(var reader = new StreamReader(stream))
{
    // Use reader.
}

5

다음과 같이 리소스 파일을 읽을 수 있습니다.

Assembly resourceAssembly = Assembly.LoadFrom(resourceFile.FullName);
string[] manifests = resourceAssembly.GetManifestResourceNames();

using (ResourceReader reader = new ResourceReader(
    resourceAssembly.GetManifestResourceStream(manifests[0])))
{
    foreach (IDictionaryEnumerator dict in reader)
    {
        string key = dict.Key as string;
        object val = dict.Value;
    }
}

foreach루프는 명시 적으로 열거보다 낫다.
R. Martinho Fernandes

5

여기에서 StreamReader를 가져와야합니다 (TextReader는 StreamReader 및 StringReader의 추상 기본 클래스입니다). 다음과 같은 것 :

var stream = System.Reflection.Assembly.GetExecutingAssembly().
    GetManifestResourceStream(resource);
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.