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




你可能感兴趣的:(C++,c,Blog,C#)