5

これは基本的な質問です。

バイト ストリームを使用してバイトをファイルに書き込む場合、バイナリ ファイルが作成されますか?

例: バイト ストリームを使用してテキスト データをメモ帳に書き込み、HEX ビューアでメモ帳を開くと、各文字に対応する 16 進値が表示されます。しかし、バイナリ値 (つまり、0 と 1) ではないのはなぜですか。

また、dataoutput/input ストリームを使用してバイナリ ファイルを読み書きすることも学びました。

私の混乱は、バイトを書き込むことの意味と、バイナリデータを書き込むことの意味にあると思います。

4

4 に答える 4

4

バイト ストリームを使用してバイトをファイルに書き込む場合、バイナリ ファイルが作成されますか?

バイトをそのまま、たとえば10として書き込みます。これらのバイトが文字を表している場合、通常no、それは単なるテキストファイルです (結局のところ、すべてが 1 と 0 です)。それ以外の場合、答えは依存します。バイナリ ファイルという用語は誤解を招きやすいですが、通常は、任意のデータを含むことができるファイルを指します。

HEX ビューアでメモ帳を開くと、各文字に対応する 16 進値が表示されます。しかし、バイナリ値ではないのはなぜですか

HEX はバイトの単なる別の表現です。次の3つは等しい

10       (Decimal value 10)
0xA      (Hex value 10)
00001010 (Binary value 10)

コンピュータはバイナリ値のみを格納します。ただし、編集者は、16 進数や 10 進数など、別の方法でそれらを表現 (表示)すること選択できます。十分なバイト数があれば、画像として表現することもできます。

バイトを書き込むとはどういう意味ですか、バイナリデータを書き込むとはどういう意味ですか

バイナリ データとは、たとえば8 ビットの 1と0を意味します。8は になります。00001010bitsbyte

于 2012-09-04T18:07:50.950 に答える
1

通常、ライターを使用してテキストファイルを作成し、他の手段(ストリーム、チャネルなど)を使用してバイナリファイルを作成します。ただし、「バイナリ」ファイルにテキストとテキストのみが含まれている場合は、それは関係なくテキストファイルです。

16進形式に関しては、これはバイト値を表示するためのコンパクトな(推奨される)方法にすぎません。

于 2012-09-04T18:09:36.737 に答える
1

混乱は、使用しているアプリケーションが原因である可能性があります。HEX ビューアで何かを開くと、BIN ではなく HEX で表示されます。

于 2012-09-04T18:07:54.610 に答える
1

「テキスト」ファイルと「バイナリ」ファイルの概念は、ファイルの「消費者」としてのあなたと私にとってほとんど概念的な理解です。厳密に言えば、すべてのファイルは 1 と 0 で構成されているため、本当の意味ですべてバイナリです。16 進表現、特定の文字セットのエンコード、画像ファイル形式。100 のランダムなバイトの配列をスピンアップし、それをファイルに吐き出すことができます。それは他のファイルと同じように「バイナリ」です。その違いは、バイトがどのように解釈されるかという文脈にあります。

これが例です。古い実証済みの ACII では、大文字の「A」は 10 進数の 65 としてエンコードされます。「A」はエディターとして、16 進ビューアーでは 0x41 (16 進数) として人々に表すことができますが、最終的には、そのバイトをファイルに書き込むと、それは一連の 8 ビット 01000001 に変換された単なるバイトです。

于 2012-09-04T18:08:03.817 に答える