IO字符流字节流
IO分两种流
字节流 InputStream OutputStream
字符流 Reader Writer
他们都是抽象类
具体实现
字节流 FileInputStream FileOutputStream
字符流 FileReader FileWriter
字节流转换成字符流可以用 InputSteamReader OutputStreamWriter
转换成BufferdReader BufferedWriter 他们具有缓冲区
参考 http://neil-jh.iteye.com/blog/175121
从输入流读取内容写到文件存储是没问题的,
但是按字节读取输出到内存会有部分中文乱码的问题,
推测可能是字节形式读入的时候,中文被截断了引起的乱码
按字符读取就没问题。
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();