1.io流按方向分为输入流和输出流,输入流和输出流都是相对于程序而言的。
2.io流按大小分为字节流和字符流。
3.io流按处理与否分为节点流和处理流。
注意点:
a 包含inputstream的类都是按照字节流来处理
b 形象比喻“文件”《----》“管道”《-----》“程序”
使用规律:
1.首先,确认是输入流还是输出流
2.其次,如果是纯文本可用字符流(Reader、Writer),否则用字节流(InputStream、OutputStream)
3.最后,确认是否要使用封装出处理流;
eg:从网络下载一张图片至本地,
解析:1.首先分成两个过程:a.从网络下载图片至内存为输入流 b.从内存拷贝至本地为输出流
2.图片不是纯文本,用InputStream 和 OutputStream
3.可封装成 BufferedInputStream 和 BufferedOnputStream
HttpURLConnection connection = null; BufferedInputStream in = null; BufferedOutputStream out = null; try { URL url = new URL(urlPath); connection = (HttpURLConnection) url.openConnection(); in = new BufferedInputStream(connection.getInputStream()); out = new BufferedOutputStream(outputStream); int len; while ((len = in.read())!=-1) { out.write(len); } return true; }catch (Exception e) { e.printStackTrace(); }finally { if (connection != null) { connection.disconnect(); } try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (final IOException e) { e.printStackTrace(); } } return false;