相关疑难解决方法(0)

你如何从MemoryStream中获取字符串?

如果我得到一个MemoryStream我知道已经填充了一个String,我怎么得到String退出?

.net vb.net string memorystream

509
推荐指数
10
解决办法
41万
查看次数

是不是可以不关闭StreamReader/StreamWriter来保持底层流打开?

我有一个基本上包装Stream用于读/写的类,但该流预计由该类的使用者管理.为了便于使用,我使用StreamReader和StreamWriter类在流上执行I/O操作.通常情况下,我会将读取器和写入器包装成using块,但我想避免关闭读取器和写入器,因为这样做也会关闭底层流,我必须保持打开状态.

如果我希望调用者管理基础Stream,那么在内存/资源管理方面是否安全不关闭StreamReader/StreamWriter?当流在其他地方明确关闭时,读写器是否会被垃圾收集?

public class Wrapper 
{
    private Stream _underlyingStream;
    public Wrapper(Stream underlyingStream) 
    {
        _underlyingStream = underlyingStream;
    }

    public string GetValue() 
    {
        _underlyingStream.Seek(0, SeekOrigin.Begin);
        var reader = new StreamReader(_underlyingStream);
        return reader.ReadToEnd(); // we're done, but the stream is not ours to close
    }
}
Run Code Online (Sandbox Code Playgroud)

c# stream

17
推荐指数
1
解决办法
5980
查看次数

标签 统计

.net ×1

c# ×1

memorystream ×1

stream ×1

string ×1

vb.net ×1