1、InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。
2、OutputStreamWriter是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
3、常用例子
URL url = new URL(easyChargeUrl);
URLConnection con = url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Pragma:", "no-cache");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml");
con.setConnectTimeout(60 * 1000);
con.setReadTimeout(60 * 1000);
//发送请求,out.write-->outputStreamWriter的write方法会调用outputStream的write方法,最终以字节流的形式输出
OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
out.write(new String(reqMsg.getBytes("UTF-8")));
out.flush();
out.close();
//读取响应,读取数据(字节流)--->InputStream-->InputStreamReader-->BufferedReader-->字符流
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line = "";
for (line = br.readLine(); line != null; line = br.readLine()) {
resp +=line;
}