读书人

IO字符源字节流

发布时间: 2012-12-27 10:17:10 作者: rapoo

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();




读书人网 >编程

热点推荐