FileReader 用于读取字符 流。要读取原始字节 流,请考虑使用 FileInputStream

 

FileReader 类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

用FileReader类读取带汉字的文本文件时会出现乱码

 

FileReader类使用

/**
	 * 读取xml文件转换为字符串
	 * @param filePath  文件路径
	 * @return
	 */
	private String getXMLString(String filePath) {
		int ch = 0;
		StringBuffer buf = new StringBuffer();
		try {
			FileReader reader = new FileReader(filePath);  //中文为乱码
			while ((ch = reader.read()) != -1) {
				buf.append((char) ch);
			}
			reader.close();
			return buf.toString();
		} catch (Exception e) {
			throw new RalasafeException(e);
		}
	}

 InputStreamReader类使用

/**
	 * 读取xml文件转换为字符串
	 * @param filePath  文件路径
	 * @return
	 */
	private String getXMLString(String filePath) {
		int ch = 0;
		StringBuffer buf = new StringBuffer();
		try {
			InputStreamReader reader = new InputStreamReader(new FileInputStream(new File(filePath)),"UTF-8");
			while ((ch = reader.read()) != -1) {
				buf.append((char) ch);
			}
			reader.close();
			return buf.toString();
		} catch (Exception e) {
			throw new RalasafeException(e);
		}
	}

 解决乱码问题