如何通过读取文件修复索引越界异常(元数据提取器)
How to fix index out of bounds exception with reading files (metadata-extractor)
我制作了一个小程序,可以从特定目录的文件中读取元数据。元数据在标签中打印出来。我在下面复制了我的代码。 'System.out.println(Arrays.toString(sourceFiles));' 返回文件夹中的所有 10 个文件。但是 'System.out.println(x);' 仅返回 3 个文件,然后给出索引 3 出界错误。我如何修复我的代码以便它读取所有 10 个文件?有人可以帮我吗? (如果我取消注释代码中的 Tag 部分,它将提供相同 3 个文件的元数据)。哦,我是 java 的新手,请给我尽可能多的信息。
我正在使用元数据提取器。
谢谢!
package scheme;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
public class Test{
public static void main(String[] args) {
// TODO Auto-generated method stub
File image = new File("C:/Users/[username]/Pictures/");
File[] sourceFiles = image.listFiles();
System.out.println(Arrays.toString(sourceFiles));
Metadata metadata = null;
try {
for (File x: sourceFiles) {
metadata = ImageMetadataReader.readMetadata(x);
System.out.println(x);
//for (Directory directory : metadata.getDirectories()) {
//for (Tag tag : directory.getTags()) {
// System.out.println(tag);
//}
//}
}
}
catch (ImageProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
没关系,我明白了。发生错误是因为程序在第 4 个文件崩溃,这是一个无法读取的 .ini 文件。
我制作了一个小程序,可以从特定目录的文件中读取元数据。元数据在标签中打印出来。我在下面复制了我的代码。 'System.out.println(Arrays.toString(sourceFiles));' 返回文件夹中的所有 10 个文件。但是 'System.out.println(x);' 仅返回 3 个文件,然后给出索引 3 出界错误。我如何修复我的代码以便它读取所有 10 个文件?有人可以帮我吗? (如果我取消注释代码中的 Tag 部分,它将提供相同 3 个文件的元数据)。哦,我是 java 的新手,请给我尽可能多的信息。
我正在使用元数据提取器。
谢谢!
package scheme;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import com.drew.imaging.ImageProcessingException;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;
public class Test{
public static void main(String[] args) {
// TODO Auto-generated method stub
File image = new File("C:/Users/[username]/Pictures/");
File[] sourceFiles = image.listFiles();
System.out.println(Arrays.toString(sourceFiles));
Metadata metadata = null;
try {
for (File x: sourceFiles) {
metadata = ImageMetadataReader.readMetadata(x);
System.out.println(x);
//for (Directory directory : metadata.getDirectories()) {
//for (Tag tag : directory.getTags()) {
// System.out.println(tag);
//}
//}
}
}
catch (ImageProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
没关系,我明白了。发生错误是因为程序在第 4 个文件崩溃,这是一个无法读取的 .ini 文件。