java中获取properties文件的中文,字符编码格式问题。

因为项目需要,写了一个properties文件的存储与读取一些系统变量。

在有中文的情况下,文件存储正常,文件读取有问题,读取出来的value是一些格式化的字符,例如:\u2050;

 

properties文件读取代码:

public  PropertiesAnalyze(){
		prop = new Properties();
		
		File f = new File(this.path);
		BufferedReader read = null;
		try {
			read = new BufferedReader(new FileReader(f));
			
			String tempString = read.readLine();
            // 一次读入一行,直到读入null为文件结束
            while (tempString != null) {
//            	tempString = tempString.trim();
                if(tempString.contains("=")){
                	String s[] = tempString.split("=");
                	this.map.put(s[0].trim(), s[1].trim());
                }
                tempString = read.readLine();
            }
            read.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if (read != null) {
                try {
                    read.close();
                } catch (IOException e1) {
                }
            }

		}
	}

 使用这种方式读取出来的就是中文“乱码”。

 

之后改用properties类来读取文件:

public  PropertiesAnalyze(){
		prop = new Properties();
		
		File f = new File(this.path);
		BufferedReader read = null;
		try {
			read = new BufferedReader(new FileReader(f));
			prop.load(read);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if (read != null) {
                try {
                    read.close();
                } catch (IOException e1) {
                }
            }

		}
	}

 用这种方式读取文件中的中文字符没有问题。

你可能感兴趣的:(java)