读取文件乱码

来源:互联网 发布:数据加密保密性 编辑:程序博客网 时间:2024/06/06 01:34
//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());}}




原创粉丝点击