现在的位置: 首页 > 综合 > 正文

读取文件乱码

2013年04月07日 ⁄ 综合 ⁄ 共 1384字 ⁄ 字号 评论关闭
//			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());
		}
	}

抱歉!评论已关闭.