2011-09-26 8 views
0

バイナリファイルはテキストエディタで読むことができますが、プログラムでしか読むことができません。 Java(バイト)を使ってバイナリファイルを作成すると、ファイルを開いて読むことができますか?それはなぜ起こるのですか? つまり、ゼロと1のシーケンスではなくプレーンテキストが表示されます。 私は、Javaではバイトベースのストリームと文字ベースのストリームがあることを知っています。 FileOutputStreamなどのバイトベースのストリームを使用すると、出力はバイトではない文字になります。Javaのバイナリファイル

私はメモ帳を使用してMYFILE.DATを開いたとき、私は特殊文字または0と1を見て期待が、私は内容を読むことができ
File file = new File("Myfile.dat"); // .txt or .bin 
    FileOutputStream fos = new FileOutputStream(file); 
    String data = "Hello, world"; 
    fos.write(data.getBytes()); 
    fos.close(); 

の「Hello World」。だから私は、バイトベースのストリームがバイナリ形式で文字を格納する方法を否定しないのですか?

+0

あなたの質問は現時点ではあまりにも曖昧です。 http://tinyurl.com/so-hints –

+0

を読んでください "読む"とはどういう意味ですか?あなたは平文かナンセンスなキャラクターの束を見ていますか? –

+7

すべてのファイルは「バイナリ」です。それは0と1が**解釈される方法の問題です。** –

答えて

6

"バイナリファイル"はテキストエディタで読むことができません。 "テキストエディタにとって役に立たない文字を含むバイナリファイルは、意味のある方法では読み書きできません"ということです。結局のところ、すべてファイルはバイナリです:それはそれらに含まれているものによって異なります。

+0

私は質問を編集し、詳細を追加すると、あなたが見ることができます – sahar

1

バイナリファイルはほとんどのテキストエディタでも開くことができます。バイナリ値はどのようなものか、エディタがテキスト値として解釈する方法によって異なります。メモ帳やシンプルなテキストエディタでJavaプログラムの出力を開くことができない理由はありません。ちょうど不器用な文字や特殊文字が表示されます。内容をバイナリとして見ることをやめたいなら、hexEditのようなバイナリファイルエディタ/ビューアが必要です。

+0

私は質問を編集し、詳細を追加すると、あなたが見ることができる – sahar

1

"バイナリファイル"とは具体的にはどういう意味ですか?ファイルに「バイナリファイル」または「テキストファイル」としてマークするマジックタグはありません(少なくとも最近のOSでは共通していません)。

ファイルは、名前といくつかのメタデータ(作成日、権限、...)が付いたバイトストリームです。

コンテンツがテキストまたはバイトとして解釈されるかどうかは、内容によってまったく異なります。

したがって、128未満のバイナリ値しか使用しないでファイルを書き込むと、結果は有効なASCIIになり、テキストエディタで開くとテキストファイルのように見える可能性があります。

ただし、ファイルにランダムなバイトを書き込んだ場合、テキストエディタで開くと、正常な出力が得られません。

+0

私は質問を編集し、見てください。 – sahar

関連する問題