IO分两种流
字节流 InputStream OutputStream
字符流 Reader Writer
他们都是抽象类
具体实现
字节流 FileInputStream FileOutputStream
字符流 FileReader FileWriter
字节流转换成字符流可以用 InputSteamReader OutputStreamWriter
转换成BufferdReader BufferedWriter 他们具有缓冲区
参考 [url]http://neil-jh.iteye.com/blog/175121[/url]
从输入流读取内容写到文件存储是没问题的,
但是按字节读取输出到内存会有部分中文乱码的问题,
推测可能是字节形式读入的时候,中文被截断了引起的乱码
按字符读取就没问题。
下载图片
字节流 InputStream OutputStream
字符流 Reader Writer
他们都是抽象类
具体实现
字节流 FileInputStream FileOutputStream
字符流 FileReader FileWriter
字节流转换成字符流可以用 InputSteamReader OutputStreamWriter
转换成BufferdReader BufferedWriter 他们具有缓冲区
参考 [url]http://neil-jh.iteye.com/blog/175121[/url]
从输入流读取内容写到文件存储是没问题的,
但是按字节读取输出到内存会有部分中文乱码的问题,
推测可能是字节形式读入的时候,中文被截断了引起的乱码
按字符读取就没问题。
URL url = new URL(path);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.setDoOutput(true);
httpUrl.setRequestMethod("GET");
httpUrl.connect();
int code = httpUrl.getResponseCode();
System.out.println(">>>>>>>>>reponse code:" + code);
in = httpUrl.getInputStream();
BufferedReader bReader = new BufferedReader(new InputStreamReader(
in, Charset.forName("utf-8")));
String inputLine = null;
while ((inputLine = bReader.readLine()) != null) {
sb.append(inputLine).append("\n");
}
bReader.close();
in.close();
httpUrl.disconnect();
下载图片
URL url = new URL(imgurl);
BufferedInputStream bis = new BufferedInputStream(
url.openStream());
byte[] bytes = new byte[100];
String[] tmp = imgurl.split("/");
OutputStream bos = null;
bos = new FileOutputStream(new File("c:\\1.jpg"));
int len;
while ((len = bis.read(bytes)) > 0) {
bos.write(bytes, 0, len);
}
bis.close();
bos.flush();
bos.close();