C#のSystem.IO.BinaryWriter
classを使用してオーディオファイルを書き込もうとしています。System.IO.BinaryWriterを使用してファイルを書き込む
私はこのアクションを実行するときにそれが正常に動作します:
File.WriteAllBytes(@"C:\TestFile\File1", br.ReadBytes((int)br.BaseStream.Length));
、私は次の操作を実行したときに、それは動作しません。しかし:
Encoding e = Encoding.ASCII;
char[] reslts = e.GetChars(br.ReadBytes((int)br.BaseStream.Length));
br.BaseStream.Position = 0;
File.WriteAllBytes((@"C:\TestFile\File2",e.GetBytes(reslts));
私は両方のケースでは、配列、バイト配列をチェックアウト同じ値が含まれていました(別のExcelファイルに値をコピーして、違いがあるかどうかを確認しましたが、何もありません)。基本ストリーム位置をコード自体が機能0
に設定されている
どちらの場合も、ファイルが正常に作成されます。この問題は、ファイルを開いたときに最初のファイルが正常に動作し、2番目のファイルがWindows Media Playerで認識されない場合に発生します。
誰かが私が間違っている可能性のあるアイデアはありますか?
「決して、テキストのように任意のバイナリデータを読んではいけません。しかし、私はそれが有用であるケースを見た。制御文字とASCIIテキストで構成されるシリアルポートを介してメッセージを送信します。この場合、メッセージを文字列として扱う方が簡単です。 – Joe