1. InputStream
- 使用 InputStream去接收aa.properties
- 创建一个properties对象,properties类有字节流load读取方法
- 因为load无法获取中文,所以getProperty得到的中文对象是乱码的
public class ZhuanFaServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/aa.properties");///WEB-INF/classes/com/zhou/servlet/aa.properties
Properties prop = new Properties();
prop.load(is);
resp.setContentType("text/html;charset=utf-8");
String user = prop.getProperty("username");
String pwd = prop.getProperty("password");
System.out.println(user);
resp.getWriter().print(user+":"+pwd);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
2.解决方法
BufferedReader字符流
InputStreamReader类有设置编码的功能
采用reader把InputStream转换成reader用字符流来读取中文
public class ZhuanFaServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/aa.properties");///WEB-INF/classes/com/zhou/servlet/aa.properties
Properties prop = new Properties();
BufferedReader aa= new BufferedReader(new InputStreamReader(is,"utf-8"));
prop.load(aa);
resp.setContentType("text/html;charset=utf-8");
String user = prop.getProperty("username");
String pwd = prop.getProperty("password");
System.out.println(user);
resp.getWriter().print(user+":"+pwd);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
3.进行测试,ok