//这个工具类定义了 使用DOM4J技术 获取xml文档的Document对象(getDocument()方法) //和write2xml(Document document)向xml文档中写入数据的方法
//private static String dbFilePath = "E:/JavaEE_WorkSpace/day12_01_regist/src/users.xml";//这么写没有问题
//private static String dbFilePath;//用静态代码块初始化这个代表xml文档的字符串就出现
//问题了!!!!! 求解答!!!
static { URL url = Dom4JUtil.class.getClassLoader().getResource("/src/users.xml"); dbFilePath = url.getPath(); }
/** * 该方法用于获取指定路径的xml文档 * @return 成功获取到xml文档返回Document对象,失败返回null * @throws Exception 如果路径指定的文件不存在,抛出此异常 —— 工具类的异常可以抛也可以不抛 */ public static Document getDocument() throws Exception{ SAXReader reader = new SAXReader(); return reader.read(dbFilePath); } /** * 该方法用于向指定路径的xml文档中书写信息 * @param filePath * @throws Exception 如果不存在指定路径的xml文档,抛出此异常 */ public static void write2xml(Document document) throws Exception{ OutputStream out = new FileOutputStream(dbFilePath); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(out, format); writer.write(document); writer.close(); }
private static String filePath;
static{
filePath=XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
}
为什么这么改?
@UzumakiNaruto: 静态代码块的变量要是静态变量,普通变量不行