1
こんにちは私は、私が取り組んでいるより大きな仕事から減らした以下のコードを持っています。基本的には、私は、メモリストリームを一緒に組み合わせるときに、私は結合位置に特殊文字を取得していることが分かっている。以下は、問題を示す完全に実行するためのコードです。 Visual Studioコードで結果のexport.csvファイルを開くと、3行目の先頭に特殊文字が表示されます。 ExcelでCSVを開くと、3行目の始まりが他の行とは異なるように見えます。.net MemoryStream、StreamWriter、FileStreamのコンボは、合成時に特殊文字を発生させます。
using System;
using System.IO;
using System.Text;
namespace testingMemory
{
class Program
{
static void Main(string[] args)
{
var stream1 = GetMemoryStream("section1");
var stream2 = GetMemoryStream("section2");
var fileStream = new FileStream("export.csv", FileMode.Truncate, FileAccess.Write);
stream1.WriteTo(fileStream);
stream2.WriteTo(fileStream);
}
public static MemoryStream GetMemoryStream(string section)
{
var wrapper = "\"";
var memoryStream = new MemoryStream();
var streamWriter = new StreamWriter(memoryStream, Encoding.UTF8);
streamWriter.WriteLine($"{wrapper}{section}{wrapper},{wrapper}1{wrapper}");
streamWriter.Flush();
streamWriter.WriteLine($"{wrapper}{section}{wrapper},{wrapper}2{wrapper}");
streamWriter.Flush();
return memoryStream;
}
}
}