创建Java文本文件时出错
我正在使用从图像中提取元数据。然后我使用Java创建一个包含所有数据的.txt文件。但是,当我运行该文件时,出现了nullpointexception 我知道在NetBeans中提供的输出框中打印出的内容正在输出 创建文件的类:创建Java文本文件时出错,java,file,text,metadata-extractor,Java,File,Text,Metadata Extractor,我正在使用从图像中提取元数据。然后我使用Java创建一个包含所有数据的.txt文件。但是,当我运行该文件时,出现了nullpointexception 我知道在NetBeans中提供的输出框中打印出的内容正在输出 创建文件的类: private void metadataImageButtonMouseClicked(java.awt.event.MouseEvent evt) { Syst
private void metadataImageButtonMouseClicked(java.awt.event.MouseEvent evt) {
System.out.println(MetaData.getTags());
try {
File report;
report = new File("report.txt");
report.createNewFile();
FileWriter kmlStream = new FileWriter("report.txt");
try (BufferedWriter out = new BufferedWriter(kmlStream)) {
out.write(MetaData.allTags);
statusUpdateMessage.setText("Report file created");
System.out.println("New file \"Report.txt\" has been created to the current directory");
}
} catch (IOException ex) {
Logger.getLogger(MetaDataExtractor.class.getName()).log(Level.SEVERE, null, ex);
}
检索所有元数据
Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
for (Directory directory : metadata.getDirectories()) {
for (Tag allTags : directory.getTags()) {
System.out.println(allTags);
}
}
} catch (ImageProcessingException ex) {
Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MetaData.class.getName()).log(Level.SEVERE, null, ex);
}
return allTags;
我的第一个想法是将返回类型作为字符串,但它不允许我这样做。欢迎任何建议,因为我对Java不是很在行
提前谢谢 只要阅读JDK附带的java.io.Writer的源代码,就可以推断您正在向编写器写入一个空字符串,这会导致NullPointerException。这发生在第541行的文件
MetaDataExtractor.java
中的MetaDataExtractor.metadataImageButtonMouseClicked()
在写入字符串之前,请检查字符串是否为空。以下是错误跟踪的第一行:
at java.io.Writer.write(Writer.java:157)
at MetaDataExtractor.metadataImageButtonMouseClicked(MetaDataExtractor.java:541)
问题在于metadataImageButtonMouseClicked(e)
,特别是在第541行找到了哪条指令?涉及哪些变量?这应该会有所帮助