StreamReader/Filestream
とは対照的に、ファイルからバイナリデータを読み込み、そのデータ(書式付き)をテキストボックスに表示します。C#.NETでバイナリデータを読み込んで文字列に変換するにはどうすればよいですか?
答えて
1は、バイナリファイルを読むために必要がある場合、あなたが本当にここで達成しようとするものは不明であるため、異なるケースがいくつかされている、があります。
- バイナリに似進値(一連のランダムなファイルや表示を読んでVisual Studioまたは他のバイナリファイルビューアのファイルビュー)。 BerfflyジェフMの答えで覆われています。
- バイナリシリアル化を使用して独自のオブジェクトを読み書きします。 MSDN-http://msdn.microsoft.com/en-us/library/et91as27.aspxでシリアライゼーションのチュートリアルを確認し、BinaryFormatterオブジェクトを参照してください。
- 誰かがelsesバイナリ形式(JPEG、PNG、ZIP、PDFなど)を読み取っています。この場合、ファイルの構造を知る必要があります(ファイル形式のドキュメントがよくあります)。BinaryReaderを使用してファイルの個々の塊を読み込む必要があります。一般的なファイル形式のほとんどでは、そのようなファイルをより便利に読み取ることができる既存のライブラリを見つけるのは簡単です。 BinaryReaderのMSDN記事には、基本的な使用例もあります:http://msdn.microsoft.com/en-us/library/system.io.binaryreader.aspx。
したがって、印刷できない可能性のあるデータのようなバイナリデータですか?データを16進文字列として出力したい場合は、データをバイトの配列として取り出し、16進表現に変換します。
string path = @"path\to\my\file";
byte[] data = File.ReadAllBytes(path);
string dataString = String.Concat(data.Select(b => b.ToString("x2")));
textBox.Text = dataString;
ファイルを読むためにBinaryReaderを使用してください。次に、BASE64形式のファイルから読み取られたバイト配列をコードし、テキストボックスにBASE64にエンコードされた文字列を割り当てる
UPDATE:
ためのテキストボックスに割り当てる前に、さまざまなテキストエンコーディングでエンコードすることができるファイルから読み込まれたバイト配列表示。
- System.Text.ASCIIEncoding
- System.Text.UTF8Encoding
- System.Text.UnicodeEncoding
- System.Textの:フォーマットエンコード文字に関連する.NETクラスに次の名前空間を見てみましょう
- System.Text.UTF7Encoding .UTF32Encoding
あなたが行う前に、対象ファイルの正確なエンコーディングを知っていることを確認してくださいバイト配列からエンコードされた文字列への変換。または、ファイルBOMバイトをチェックすることもできます。
UPDATE(2):
System.Textのクラスのいずれかを使用して、あなたが非テキストファイル(例えば、画像ファイル、音楽ファイル)に変換することはできませんのでご注意ください。それ以外の場合は、テキストボックスに表示する意味がありません。
私はbase64文字列を得ることはどんなに良いことでもないことを否定しません、それは有効な表現です。しかし、最近のさまざまな文字列エンコーディングに関する最新のアップデートは、ここにAFAIKを追加しません。これは、私たちが生のバイナリではなくファイルからテキストを読み込んでいることを示唆しています。 –
@Jeff M、その情報は初心者のために役立つかもしれません。さらに、バイナリファイルは、多くのものが混在した複雑なものです。たとえば、特定のバイト範囲内ではutf8のテキスト値であり、別の範囲内では画像などのバイト配列である可能性があります。 – Predator
- 1. C#で文字列をPascalCase文字列に変換するにはどうすればよいですか?
- 2. バイナリファイルを読み込んでバイナリ文字列に変換する
- 3. plistを読み込んで文字列に保存するにはどうすればよいですか?
- 4. C++/Arduino:文字列/文字配列をバイトに変換するにはどうすればよいですか?
- 5. C#で文字列を文例に変換するにはどうすればよいですか?
- 6. .NETで文字列をdatetimeに変換するにはどうすればよいですか?
- 7. C#で文字列をバイト配列に変換するにはどうすればよいですか?
- 8. PHPで文字列を日付に変換するにはどうすればよいですか? C#ので
- 9. ファイルを読み込んで文字数をカウントするにはどうすればよいですか?
- 10. PHP文字列値をアンドロイド文字列値に変換するにはどうすればよいですか?
- 11. C#でncharを文字列に変換するにはどうすればよいですか?
- 12. 「ディスク」からNinePatchイメージを読み込み、NinePatchDrawableに変換するにはどうすればよいですか?
- 13. MACでSAS Gov't Dataファイルを読み込み/変換するにはどうすればよいですか?
- 14. バイナリデータを文字列に変換する
- 15. 文字エスケープシーケンスを含む文字列をcharに変換するにはどうすればよいですか?
- 16. 1つの文字を文字列に変換するにはどうすればよいですか?
- 17. UTF-8文字列を大文字に変換するにはどうすればよいですか?
- 18. 文字列を小文字に変換するにはどうすればよいですか?
- 19. 文字列をユニコード文字に変換するにはどうすればよいですか?
- 20. 文字のLazySeqをClojureの文字列に変換するにはどうすればよいですか?
- 21. 文字列の文字をリストに変換するにはどうすればよいですか?
- 22. node.jsで、ETIMEDOUTのようなerr.codeをより読みやすい文字列に変換するにはどうすればよいですか?
- 23. 文字列をOctetString(C#)に変換するにはどうすればよいですか?
- 24. バッファをC++のバイナリ文字列に変換するにはどうすればよいですか?
- 25. 12時間文字列をC#TimeSpanに変換するにはどうすればよいですか?
- 26. アンマネージドIntPtr型をC#文字列に変換するにはどうすればよいですか?
- 27. longをC++の文字列に変換するにはどうすればよいですか?
- 28. Cで.datファイルを読み込んで解析するにはどうすればよいですか?
- 29. C#で.txtファイルを読み込んで編集するにはどうすればよいですか?
- 30. phpを使って文字列にphpファイルを読み込むにはどうすればいいですか?
これは、さまざまなベースとエンコードをカバーしません。そのためにいくつかの問題が発生する可能性があります。 – Random
@ランダム:しかし、質問には何も指定されていませんでした。彼が言ったことはすべて「バイナリデータ」だった。データがエンコードされたのか、それともどのような文字列表現であるのかは言及されていない。だから、私はそれを平易な、印刷不可能なデータとして16進文字列として解釈しました。私たちが今できることは、彼が明らかにするまで彼が何を意味するのかを推測することだけです。 –
エンコードできますか? – liamzebedee