簡體   English   中英

將文件轉換為字節數組並使用UDP傳輸。 如何從這個字節數組獲取服務器上的文件名?

[英]Converting file to byte array and transmitting it with UDP. How to get file name on server from this array of bytes?

所以我將一個文件讀入一個字節數組,然后將其分解為塊並通過UDP將其發送到網絡。

Path path = Paths.get("files_upload/music.mp3");
byte[] objectBytes = Files.readAllBytes(path);

在服務器上,我將所有塊讀入緩沖區,最終得到與客戶端上相同的byte[] objectBytes 現在我想使用原始文件名將文件寫入磁盤,在這種情況下是music.mp3。 那么如何從字節數組中獲取文件名?

字節數組不包含文件名。 你必須單獨發送它。 您可以在路徑上調用getFileName,然后在結果字符串上使用getBytes()將其轉換為字節數組。

String fileName = path.getFileName();
byte[] fileNameBytes = fileName.getBytes();

然后,您可以先發送它,然后在另一端讀取它。 注意,這不包含整個路徑,只包含文件的名稱(在您的情況下為music.mp3)。

順便問一下,你確定要使用UDP嗎? 如果在傳輸數據時丟失一兩個數據包怎么辦? 你如何在服務器上檢測到它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM