【问题标题】:Converting file to byte array and transmitting it with UDP. How to get file name on server from this array of bytes?将文件转换为字节数组并使用 UDP 传输。如何从这个字节数组中获取服务器上的文件名?
【发布时间】:2013-02-24 14:07:54
【问题描述】:

所以我将一个文件读入一个字节数组,然后我将它分解成块并使用 UDP 通过网络发送。

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

在服务器上,我将所有块读入缓冲区,最终得到与客户端相同的byte[] objectBytes。现在我想使用原始文件名将文件写入磁盘,在这种情况下是 music.mp3。那么如何从字节数组中获取文件名呢?

【问题讨论】:

标签: java java-io fileoutputstream


【解决方案1】:

字节数组不包含文件名。您必须单独发送。您可以在路径上调用 getFileName,然后在结果字符串上使用 getBytes() 将其转换为字节数组。

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

然后,您可以先发送此内容,然后在另一端阅读。请注意,这不会包含整个路径,仅包含文件名(在您的情况下为music.mp3)。

顺便问一下,您确定要使用 UDP 吗?如果在传输数据时丢失一两个数据包怎么办?您如何在服务器上检测到它?

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 2016-08-02
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2012-01-12
    相关资源
    最近更新 更多