2011-03-28 8 views

答えて

4

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
7

したがって、印刷できない可能性のあるデータのようなバイナリデータですか?データを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; 
+1

これは、さまざまなベースとエンコードをカバーしません。そのためにいくつかの問題が発生する可能性があります。 – Random

+2

@ランダム:しかし、質問には何も指定されていませんでした。彼が言ったことはすべて「バイナリデータ」だった。データがエンコードされたのか、それともどのような文字列表現であるのかは言及されていない。だから、私はそれを平易な、印刷不可能なデータとして16進文字列として解釈しました。私たちが今できることは、彼が明らかにするまで彼が何を意味するのかを推測することだけです。 –

+0

エンコードできますか? – liamzebedee

3

ファイルを読むために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のクラスのいずれかを使用して、あなたが非テキストファイル(例えば、画像ファイル、音楽ファイル)に変換することはできませんのでご注意ください。それ以外の場合は、テキストボックスに表示する意味がありません。

+0

私はbase64文字列を得ることはどんなに良いことでもないことを否定しません、それは有効な表現です。しかし、最近のさまざまな文字列エンコーディングに関する最新のアップデートは、ここにAFAIKを追加しません。これは、私たちが生のバイナリではなくファイルからテキストを読み込んでいることを示唆しています。 –

+1

@Jeff M、その情報は初心者のために役立つかもしれません。さらに、バイナリファイルは、多くのものが混在した複雑なものです。たとえば、特定のバイト範囲内ではutf8のテキスト値であり、別の範囲内では画像などのバイト配列である可能性があります。 – Predator

関連する問題