android用SAX解析xml文件时抛出org.apache.harmony.xml.ExpatParser$ParseException异常的解决方法

之前写了一个程序需要读取本地XML文件,测试成功就放过了,今天无意间发现了这个异常,虽然说只是Warining,不过每次看着logcat都看到一堆的信息就烦。。。
为了让自己心情好点,所以决定干掉这个异常。

org.apache.harmony.xml.ExpatParser$ParseException: At line ., column .: not well-formed (invalid token);

直接看这个异常的名字ParseException----解析异常,not well-formed----格式不好、格式不是很规范,所以可能出错的原因是:1、XML文件写的格式出问题,2、读取XML文件时出问题,3、解析的时候出问题。有点废话,不过就是这样。
一般情况下,都是第2点出问题,也就是从本地XML读取后,读取的数据出错了,我的程序就是这个问题,也是一个新手问题。
    private void readconfigOn(String Path) { 
        File f = new File(Path);
        String path = f.getAbsolutePath();
        FileInputStream fileIS;
        byte[] resultByte = new byte[512];
        int length = 0;
        try {
                 fileIS = new FileInputStream(path);
                 length = fileIS.read(resultByte);
        } catch (IOException e1) {
                 //e1.printStackTrace();
                 return;          // no file make it return
        }
        //String resultStr = new String(resultByte);  这样是错的,这样在原XML文件内容后面再加上一堆乱码
        String resultStr = new String(resultByte,0,length);  //根据从XML文件读取byte的个数进行截取
        Log.d(TAG,resultStr); //查看下要传给解析器的数据
	//我上网搜索的时候,有些人是sb.append("line="+line); 之后改sb.append(line);就好了,其实也是第2点问题
        try {
                 SAXParserFactory factory = SAXParserFactory.newInstance();
                 XMLReader reader = factory.newSAXParser().getXMLReader();
                 reader.setContentHandler(new IPConfigHandler());
                 reader.parse(new InputSource(new StringReader(resultStr)));
        } catch (Exception e) {
                 e.printStackTrace();
        }
    }

现在不抛异常啦,看着就是舒服。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值