Nice programing

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

nicepro 2020. 10. 25. 13:03
반응형

스트림에서 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();

참고 URL : https://stackoverflow.com/questions/5342975/get-a-textreader-from-a-stream

반응형