gpt4 book ai didi

java - 获取文件元数据字段

转载 作者:行者123 更新时间:2023-11-30 03:45:23 24 4
gpt4 key购买 nike

我使用此代码来获取图像文件中特定的用户定义元数据:

File file = new File("C:\\image.jpg");
Path path = FileSystems.getDefault().getPath(file.getPath(), "");
BasicFileAttributes attr = null;
try {
attr = Files.readAttributes(path, BasicFileAttributes.class);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

UserDefinedFileAttributeView view = Files
.getFileAttributeView(path,UserDefinedFileAttributeView.class);
String name = "UserDefinedField";

ByteBuffer buf = null;
try {
buf = ByteBuffer.allocate(view.size(name));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
view.read(name, buf);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
buf.flip();
String value = Charset.defaultCharset().decode(buf).toString();
System.out.println(value);

但我必须了解该字段,有没有办法列出所有元数据字段?!

最佳答案

您可以使用 list() 检索文件的所有 UserDefinedFileAttributes,例如

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.UserDefinedFileAttributeView;
import java.util.List;

public class ReadData {

public static void main(String[] args) throws IOException {
Path path = Paths.get("someImage.jpg").toAbsolutePath();

UserDefinedFileAttributeView fileAttributeView = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class);
List<String> allAttrs = fileAttributeView.list();

for (String att : allAttrs) {
System.out.println("att = " + att);
}
}
}

关于java - 获取文件元数据字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25878300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com