老师,遇到一些问题了

老师,遇到一些问题了

package com.imooc.plan;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Plan {

public void planReader() {
String file = "G:\\workspace\\Xml\\bin\\plan.xml";

SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
Element root = document.getRootElement();
List<Element> courses = root.elements("course");
for(Element course:courses) {
System.out.println(course.elementText("course-name"));
System.out.println(course.elementText("class-hour"));
System.out.println(course.elementText("exam-form"));
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void planWriter() {
String file = "G:\\workspace\\Xml\\bin\\plan.xml";

SAXReader reader = new SAXReader();
Document document;
try {
document = reader.read(file);
Element root = document.getRootElement();
Element course= root.addElement("course");
course.addAttribute("course-num", "003");
course.addElement("course-name").setText("哲学");
course.addElement("class-hour").setText("52");
course.addElement("exam-form").setText("考试");
Writer writer= new FileWriter(file);

document.write(writer);
writer.close();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}


public static void main(String[] args) {
Plan plan=new Plan();
plan.planReader();
plan.planWriter();
}

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE teaching-plan SYSTEM "plan.dtd">
<teaching-plan>
<course course-num="001">
<course-name>大学英语</course-name>
<class-hour>36</class-hour>
<exam-form>考试</exam-form>
</course>
<course course-num="002">
<course-name>高等数学</course-name>
<class-hour>70</class-hour>
<exam-form>考试</exam-form>
</course>
<course course-num="003">
<course-name>计算机应用基础</course-name>
<class-hour>108</class-hour>
<exam-form>上机考试</exam-form>
</course>
</teaching-plan>

1---我写好读取方法后,就马上测试了,也能读取所有的信息了

2--我写好写入的方法后,写入发现文件里面的内容都没了,我哪里写错了?

3--发现文件里面没有后,因为eclipse还没有更新,里面还有内容,我又把里面的内容,复制到了文件里,然后就报错了?http://img1.sycdn.imooc.com//climg/606e793d0939d52422121119.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1、老师测试代码是没有问题的,是可以正确添加的,如下图所示:

http://img1.sycdn.imooc.com//climg/606ebc360915d21b07780640.jpg

http://img1.sycdn.imooc.com//climg/606ebc88098b51ae17970609.jpg

2、根据同学的报错信息,“com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。”应该是由于XML文件的编码格式造成的。

建议找到xml文件,然后右键xml文件,将xml文件用记事本打开,选择另存为,选择utf-8格式保存即可。

具体如下:

http://img1.sycdn.imooc.com//climg/5df9a3fe099393a505970353.jpg

http://img1.sycdn.imooc.com//climg/5df9a3e5093e9f1902630255.jpg

http://img1.sycdn.imooc.com//climg/5df9a44209012d9808680146.jpg

然后再尝试重新编译代码。

3、如果还存在问题,则建议同学重新创建项目与xml文件试一下。

祝学习愉快!

阿山123 提问者 2021-04-08 11:53:30

http://img1.sycdn.imooc.com//climg/606e7d6b0977bef212760154.jpg

问题就是这个,不能用这个  ​Writer writer= new FileWriter(file); 写入,我昨天以为可以,第一次试成功了,今天前两天写入都是成功的,,但是第三次就报错了。。我也不知道为啥能成功前两次,第三次就失败了,但是确实不能用这个。。昨天看一个问答,上面这样写的,我也跟着写了,到现在才发现多次以后才有问题,真是误人啊!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师