【问题标题】:Writing to stream without file path写入没有文件路径的流
【发布时间】:2012-07-23 08:37:30
【问题描述】:

我有一个遗留类,它使用StreamWriter 将一些结果写入文件,使用接受FileStream 的构造函数创建,该构造函数之前是通过为其构造函数提供文件路径来创建的:

        using (FileStream fs = File.Open(outputFilePath, FileMode.Create))
        using (StreamWriter sw = new StreamWriter(fs))
        {
            MyFileWriter.WriteToFile(someData, sw);
        }

顺便说一下,WCF 服务中使用了声明的代码。
现在,我有新的要求,我必须将文件保存到客户端文件系统,并且我有限制,我只能将 byte[] 发送到客户端。我想对现有代码进行最少的更改以支持这一点,那么是否有某种流,例如,我可以创建某种流,而无需在其构造函数中指定文件路径?稍后我会将此流转换为byte[]
我也愿意接受您可能有的任何其他想法。

【问题讨论】:

  • 你考虑过使用内存流吗?

标签: c# .net stream


【解决方案1】:

您可以使用 MemoryStream,

    byte[] result;
    using (MemoryStream ms = new MemoryStream())
    using (StreamWriter sw = new StreamWriter(ms))
    {
        MyFileWriter.WriteToFile(someData, sw);
        result = ms.ToArray();
    }

    // use the result byte[]

【讨论】:

    【解决方案2】:

    使用MemoryStream

    using (MemoryStream ms =  new MemoryStream())
    {
      using (StreamWriter sw = new StreamWriter(ms))
       {
         MyFileWriter.WriteToFile(someData, sw);
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2014-07-29
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多