java读取文件乱码

提示:用流去读文件,不要用fileReader去读。

因为流可以指定具体某种编码。

 

e.g.:

 

/**
	 * 采用指定的编码读取XML
	 * @param fileName
	 * @return
	 */
	public static String readFile_encoding(String fileName) {
		
		String encoding="UTF-8"; //字符编码
		File file = new File(fileName);
		
		BufferedReader reader = null;
		StringBuffer sb=new StringBuffer("");
		try {
//			reader = new BufferedReader(new FileReader(file));
			InputStreamReader read = new InputStreamReader (new FileInputStream(file),encoding);
			reader = new BufferedReader(read);
			String tempString = null;
			int line = 1;
			while ((tempString = reader.readLine()) != null) {
				sb.append(tempString);
				line++;
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}
		return sb.toString();
	}
 

 

 

上述方法测试通过。

 

但是也有人指出,编码可以从文件中读出,而不需要自己去指定UTF-8。

e.g.:

InputStreamReader类中有getEncoding()这个方法!
返回String  
getEncoding()  
返回此流使用的字符编码的名称。
 

refurl:http://topic.csdn.net/u/20090516/20/12b87be4-e311-419c-9282-5dcd5a3836c9.html

不过我还没有时间去测试。

 

 

ps:此方法通用于所有文件,无论是txt的,还是xml的。

 

refurl:http://www.chinajavaworld.com/thread.jspa?threadID=739536

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java读取文件)