首页 > C# > 如何在 C# 中将流保存到文件?

如何在 C# 中将流保存到文件?

上一篇 下一篇

我有一个用流初始化的对象,现在我想将此流保存到磁盘(流可能是 or 或 )。StreamReader.gif.jpg.pdf

现有代码:

StreamReader sr = new StreamReader(myOtherObject.InputStream);
  1. 我需要将其保存到磁盘(我有文件名)。
  2. 将来我可能希望将其存储到SQL Server。

我也有编码类型,如果我将其存储到 SQL Server,我将需要它,对吗?

分割线

网友回答:

您不得用于二进制文件(如 gif 或 jpg)。 用于文本数据。如果您将其用于任意二进制数据,您几乎肯定会丢失数据。(如果你使用Encoding.GetEncoding(28591),你可能没问题,但有什么意义呢?)StreamReaderStreamReader

为什么需要使用?为什么不将二进制数据保留二进制数据并将其作为二进制数据写回磁盘(或SQL)?StreamReader

编辑:因为这似乎是人们希望看到的…如果您只想将一个流复制到另一个流(例如,复制到文件),请使用如下内容:

/// <summary>
/// Copies the contents of input to output. Doesn't close either stream.
/// </summary>
public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[8 * 1024];
    int len;
    while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, len);
    }    
}

要使用它将流转储到文件,例如:

using (Stream file = File.Create(filename))
{
    CopyStream(input, file);
}

请注意,这是在 .NET 4 中引入的,用途基本相同。Stream.CopyTo

分割线

网友回答:

正如 Tilendor 在 Jon Skeet 的回答中所强调的那样,流自 .NET 4 以来就有了方法。CopyTo

var fileStream = File.Create("C:\Path\To\File");
myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
myOtherObject.InputStream.CopyTo(fileStream);
fileStream.Close();

或者使用语法:using

using (var fileStream = File.Create("C:\Path\To\File"))
{
    myOtherObject.InputStream.Seek(0, SeekOrigin.Begin);
    myOtherObject.InputStream.CopyTo(fileStream);
}

如果您还没有开始,则必须调用,否则您将无法复制整个流。Seek

分割线

网友回答:

public void CopyStream(Stream stream, string destPath)
{
  using (var fileStream = new FileStream(destPath, FileMode.Create, FileAccess.Write))
  {
    stream.CopyTo(fileStream);
  }
}

模板简介:该模板名称为【如何在 C# 中将流保存到文件?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 347次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-04
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信图片 微信素材 微信文章 html5 单页式简历模板 企业网站 响应式 微信公众平台 微信模板 自适应
您可能会喜欢的其他模板