// getResource方法使用了utf-8对路径信息进行了编码,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,在此,调用了URLDecoder的decode方法进行解码,以便得到原始的中文及空格路径。 String configPath = XmlParserHandler.class.getResource("rain.xml").getFile(); configPath = java.net.URLDecoder.decode(configPath,"utf-8"); File file = new File(configPath); //指定按什么编码读取文件 BufferedReader br=new BufferedReader( new InputStreamReader(new FileInputStream(file), "GB2312")); String data; StringBuffer sb=new StringBuffer(); while((data=br.readLine())!=null){ sb.append(data); System.out.println(data); }
public static void xmlT(){ SAXParser parser=null; try { parser=SAXParserFactory.newInstance().newSAXParser(); XmlParserHandler handler=new XmlParserHandler();//解析器 //=========================假数据=========================================== //指定按什么编码读取文件 //.class.getClassLoader()获得一个类加载器,用来加载classpath下的.class文件 所以目录要从根开始。 BufferedReader br=new BufferedReader( new InputStreamReader(XmlParserHandler.class.getClassLoader(). getResourceAsStream("webservices/axis/xml/rain.xml"), "GB2312")); InputSource is=new InputSource(br); //不用ClassLoader就使用当前类的相对路径就好 // BufferedReader br=new BufferedReader( // new InputStreamReader(XmlParserHandler.class. // getResourceAsStream("./rain.xml"), "GB2312"));// ./代表当前目录不写也可以 // InputSource is=new InputSource(br);//数据源 parser.parse(is, handler); //================================================================================ } catch (Exception e) { System.out.println(e.getMessage()); } }