是否可以使用Java在文件上设置自定义元数据?

Pre*_*hev 8 java file

是否可以在File实例上获取和设置自定义元数据?我希望将我通过系统处理的文件用作某种非常简单的数据库,其中每个文件都应包含其他自定义元数据,例如发件人的电子邮件,某些时间戳等.

它适用于内部系统,因此安全性不是问题.

Bor*_*der 8

在java 7中,您可以使用Path类和UserDefinedFileAttributeView.

这是从那里取得的例子:

通过使用以下代码片段,可以将文件的MIME类型存储为用户定义的属性:

Path file = ...;
UserDefinedFileAttributeView view = Files
    .getFileAttributeView(file, UserDefinedFileAttributeView.class);
view.write("user.mimetype",
           Charset.defaultCharset().encode("text/html");
Run Code Online (Sandbox Code Playgroud)

要阅读MIME类型属性,您可以使用以下代码段:

Path file = ...;
UserDefinedFileAttributeView view = Files
.getFileAttributeView(file,UserDefinedFileAttributeView.class);
String name = "user.mimetype";
ByteBuffer buf = ByteBuffer.allocate(view.size(name));
view.read(name, buf);
buf.flip();
String value = Charset.defaultCharset().decode(buf).toString();
Run Code Online (Sandbox Code Playgroud)