2013-04-23 64 views
0

服務器通過單個輸出流發送幾個文件,當客戶端收到byte []時,它如何提取文件?字節中是否有任何標記?例如EOF? '\ r \ n',否則?看來java的基本IO,甚至NIO都無法做到這一點。 我認爲通過單個IO通道發送多個文件,我們應該插入一些特殊字符來分割字節。僅供參考。在java IO流中的幾個文件

+0

這是一個問題?顯然,如果你想發送多個實體,你需要區分實體。 – 2013-04-23 13:28:49

+0

我認爲產生碰撞的可能性非常低,我們用正常字節插入的區別,例如,一個jpeg文件,我們使用'ffff'來區分下一個jpg文件,但'ffff'可能是'ffff'的一部分jpg文件。 – 2013-04-23 13:38:25

+0

我認爲「碰撞」的概率比較高*,特別是在發送二進制數據時。這就是爲什麼,例如,HTTP多部分在實體之間使用GUID。 IMO更好地壓縮文件並以已知的多部分格式發送。但我仍然不清楚這個問題。 – 2013-04-23 13:42:52

回答

0

如果您將流封裝在多部分或zip(不壓縮是選項)流中,您將不必重新實現標記,因此您正在尋找低級函數。