0

こんにちは、ソケットを介してJavaファイルオブジェクトをサーバーに送信しようとしています。サーバーはそれをデータベースに保存します。現在、File オブジェクトを格納する FileBean を作成しました。次に、ObjectOutputStream を使用して、FileBean をサーバーに writeObject() します。ただし、File オブジェクトには実際のデータへの参照のみが含まれているように見えるため、サーバーは実際にデータを取得できません。

objectoutput ストリームのようなものを使用してソケット経由で送信される File オブジェクトをシリアル化する方法はありますか? それとも、ファイルをバッファに書き込んでソケット経由で送信する必要がありますか?

ヘルプとコード例は感謝します

4

1 に答える 1

3

ファイルはパスであり、それ以上のものではありません。そして、別のマシン上のサーバーにとってはまったく価値がありません。

これは、ファイルが持つすべての状態です (の Java 1.6 ソースから取得java.io.File):

/**
 * This abstract pathname's normalized pathname string.  A normalized
 * pathname string uses the default name-separator character and does not
 * contain any duplicate or redundant separators.
 *
 * @serial
 */
private String path;

/**
 * The length of this abstract pathname's prefix, or zero if it has no
 * prefix.
 */
private transient int prefixLength;

ファイルの内容を (おそらくバイト配列として) 読み取り、サーバーに送信する必要があります。

于 2011-04-05T07:03:52.900 に答える