【发布时间】:2013-11-23 14:29:30
【问题描述】:
我有代表我通过网络传输的文件的字节。除了在文件系统上手动重构文件外,如何从文件中获取getName()、getPath()等信息?
换句话说:
- 我从机器 A 上的文件开始
- 我使用 FileUtils 将文件转成字节数组
- 我通过网络将该文件传输到机器 B
- 在机器 B 上,我想将该字节 [] 重构为文件并运行 getName() 等方法
以下不起作用
- (文件)字节 --> 不转换
- ((File) ((Object) bytes))) --> 也不转换
我真的不想在文件系统上创建一个新的临时文件,尽管我知道有可用的静态 File.createTemp 可以做到这一点。我宁愿把它保存在内存中,从 byte[] 数组构造一个新的 File 对象,获取我需要的信息并完成。
实际上,更好的是一个 API,它将获取 byte[] 并从中通过解析位直接获取文件名。
【问题讨论】:
-
FileUtils 是否输出有关文件和/或文件内容的数据?
-
FileUtils 会将字节[] 转储到文件系统本身上的实际文件中。但是,我只想从内存中访问文件。即,只需获取 .getName() 内容。见 FileUtils.writeByteArrayToFile(file, data);
-
您必须发送名称/路径/等。与字节一起通过网络。
-
@Kevin 不是存储在 byte[] 中的文件名信息吗?
-
没有。 byte[] 包含文件的内容,不多也不少。好吧,如果阅读有问题,可能会更少。它与任何其他 byte[] 没有什么不同。
标签: java arrays apache file apache-commons