IT業界のすみっこ暮らし

ふと気がついたときの記録

C#でCSVファイル出力時に最後にNULL文字コードが挿入される問題(byte[]変換問題)

pie001.hatenablog.com 上記のCSVファイル出力をする際に起きた問題。

streamをbyte[]に変換するときにGetBuffer()を使用

return stream.GetBuffer();

一番最後にNULL文字コードがたくさん追加されてる!?

f:id:papamau:20170110184904p:plain

stackoverflow.com 調べたらGetBuffer()の代わりにToArray()を使えって回答があった。

要はGetBuffer()は使用されていないMemoryStreamも全部格納するから上記のようなことが起きた。 ToArray()は使用していないMemoryStreamは省略してGetBuffer()のように配列に格納してくれる。

streamをbyte[]に変換するときにToArray()を使用

return stream.ToArray();

これで問題なし

f:id:papamau:20170110185316p:plain