2011-04-05 45 views
0

您好,我嘗試通過套接字將Java文件對象發送到服務器,服務器然後將其存儲在數據庫中。目前我已經創建了一個FileBean,其中存儲了File對象。然後,我使用ObjectOutputStream將FileObject()寫入服務器。但是,似乎File對象只包含對實際數據的引用,所以Server無法真正獲取數據。通過套接字將Java文件對象發送到服務器

有沒有一種方法來序列化File對象通過套接字使用類似objectoutput流發送?還是需要將文件寫入緩衝區並通過套接字發送?

任何幫助和代碼示例是apprecaited

回答

3

的文件是一個路徑,而不是更多。而對另一臺機器上的服務器完全沒有價值。

這是所有的文件已經(從java.io.File的Java 1.6的源獲取)狀態:

/** 
* 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; 

您將有讀取文件的內容(可能爲字節數組),並將它們發送到服務器。

+0

+1:換一種說法,File對象只有在兩個機器上安裝的路徑/目錄相同時纔有用。例如使用NFS。重要的一點是它不會傳輸文件的內容,只有它的路徑。注意:如果使用相對路徑,它將在接收端保持相對路徑,所以絕對路徑可能不相同。 – 2011-04-05 08:15:40

+0

我能夠將文件輸出到字節數組中,將該字節數組放入Serializable對象中,然後通過套接字將其發送到服務器? – rel1kz 2011-04-05 11:49:12

+0

@ user428810是的,而且一個字節數組本身就是Serializable,所以你不必把它包裝在其他任何東西中 – 2011-04-05 12:52:13