0

本文にランダムな1と0が含まれるWebページがあり、それを生のバイナリデータとして扱い、ファイルに保存したいと思います。

<html>
    <head>...</head>
        <pre style="word-wrap: break-word; white-space: pre-wrap;">1 0 1 0 1 1 1 1 1 0</pre>
    </body>
</html>

または、1つの列でファイルを取得することもできます。url.openStream()を実行してバイトを読み取ると、ASCII値(49および48)が出力されます。また、一度に1ビットずつファイルに書き込む方法もわかりません。どうすればこれを行うことができますか?

4

2 に答える 2

1

<pre style = "word-wrap:break-word; white-space:pre-wrap;"> 1 0 1 0 1 1 1 1 1 0 </ pre>

これは2(base64)または3(hex)バイトとして送信できるため、ここでは効率は問題ではないと想定しています。;)文字列を抽出したら、それを変換できます。

String s = "1 0 1 0 1 1 1 1 1 0";
long l = Long.parseLong(s.replaceAll(" ", ""), 2);
于 2012-12-03T16:05:53.403 に答える
0

ビットをバイトに読み込んでから、ファイルにバイトを書き込むことができます。

int byteIndex = 0;
int currentByte = 0;
while (hasBits) {
    String bit = readBit();
    currentByte = currentByte << 1 | Integer.valueOf(bit);
    if (++byteIndex == 8) {
        writeByte(currentByte);
        currentByte = 0;
        byteIndex = 0;
    }
}

// write the rest of bits here

また、Robert Rouhaniにも同意します。これは、データを転送するための非常に非効率的な方法です。

于 2012-12-03T15:41:14.257 に答える