0
我写了一个代码来写,从一个数组列表的所有电影的基础上的教程从这个页面here奇怪的Java空指针异常写XML文件时
这里的XML文件是写在代码库:
public void writeMoviesToXML()
{
System.out.println("NULL");
try{
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
Element rootElement = doc.createElement("repo");
doc.appendChild(rootElement);
Element movie = doc.createElement("movie");
rootElement.appendChild(movie);
for (int i=0; i<movieMap.getMovieMap().size(); i++)
{
Attr attr1 = doc.createAttribute("title");
attr1.setValue(movieMap.getMovieMap().get(i).getTitle());
Attr attr2 = doc.createAttribute("rentTimes");
if(movieMap.getMovieMap().get(i).getRentTimes() == null)
System.out.println("NULL");
attr2.setValue(movieMap.getMovieMap().get(i).getRentTimes().toString());
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("C:\\Users\\ruspauladrian\\Desktop\\Lab2_4\\movies.xml"));
transformer.transform(source, result);
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e)
{
e.printStackTrace();
}
}
这里是在UI的代码,我得到异常:
System.out.println("Bye bye");
repository.writeMoviesToXML();
的代码是在程序结束(因此“再见”)。我希望程序在保存更改后才能关闭。我曾尝试在第一个代码部分使用“NULL”println进行调试,但它从来没有看到它,所以我不知道为什么这个代码在没有实际输入函数的情况下产生问题。
这里是在仓库中使用的进口,如果有帮助:
import dataStructures.MovieMap;
import dataStructures.PeopleList;
import domain.Movie;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
你的'repository'是'null'。请在'repository.writeMoviesToXML();'附近包含堆栈跟踪和代码。 – Marvin