[c#] 스트림에서 TextReader를 받으시겠습니까?

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



답변

TextReader tr = new StreamReader(stream);


답변

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

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


답변

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

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;
    }
}


답변

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

var stream = System.Reflection.Assembly.GetExecutingAssembly().
    GetManifestResourceStream(resource);
var reader = new StreamReader(stream);
var text = reader.ReadToEnd();


답변