0

PC と Android デバイスの間で Wi-Fi 経由でファイルを共有しようとしています。奇妙なことに、テキストとオーディオ ファイルは完全に転送されますが、画像とビデオ ファイルはレンダリングされません。主なコードは次のとおりです。

送信者:

BufferedOutputStream writer = new BufferedOutputStream(client.getOutputStream());
InputStream stream = new FileInputStream(file);
while ((read = stream.read(buffer)) != -1)
    writer.write(buffer, 0, read);

レシーバー:

BufferedInputStream input = new BufferedInputStream(client.getInputStream());
OutputStream outputStream = new FileOutputStream(file, true);
while (!store.complete) {
    read = input.read(buffer, 0 , MAX_SIZE_OF_BUFFER);
    String data = new String(buffer);
    // Need to do some data manipulation (like removing a string which i appended
    // while sending )
    outputStream.write(data.getBytes());
}

注: 受信側の画像/ビデオ ファイルのサイズが送信されるファイルと同じであっても、レンダリングに失敗します。

前もって感謝します!!:)

4

1 に答える 1

1

byte[] を String に変換してから byte[] に戻すと、元の byte[] が得られるとは限りません。

たとえば、次は元のバイト配列を出力しません。

    byte[] buffer = {-127};
    for (byte b : new String(buffer).getBytes()) { System.out.print(" " + b); }

問題を解決するには、データ操作 (データの追加と削除) をバイトとして行い、文字列との間で変換しないでください。

于 2013-08-08T23:59:10.853 に答える