【Java】 IO流的再次认识
2015-07-20 14:56
507 查看
总体结构图
一.字节流和字符流的异同:
1 字节流是一个字节一个字节的读取数据。而字符流是一次读取一个或者多个字节时,先去查指定的编码表(UTF-8,GBK),然后再将字符返回。2 字节流可以处理所有的数据类型(图片,音频,AVI视频...)。字符流只能处理字符数据。所以,处理纯文本数据的时候,优先考虑使用字符流,除此之外,都使用字节流。
二.IO流大体可分为节点流和处理流:
1 节点流:可以从固定的地方或者节点来读取数据
File: FileReader,FileWriter。(字符流)
FileInputStream,FileOutPutStream。(字节流)
String:StringReader,StringWriter。(字符流)
....2 处理流:对一个已经存在的流进行连接和封装,通过封装的流进行数据的读写操作。处理流的构造方法总是要带一个其他的流作为它的参数。一个流对其他流进行的多次包装也叫做流的链接。具体有:
2.1 缓冲流:
字节流:BufferedInputStream,BufferedOutPutStream。字符流:BufferedWriter,BufferedReader。
(字节流同理)字符流写入:BufferedWriter bufw = new BufferedWriter(new FileWriter("test.txt"));
(字节流同理) 字符流读取:BufferedReader buff = new BufferedReader(new FileReader("test.txt"));
该类型的流有一个特有的方法:readLine();一次读一行,读到行标记时,将行标记之前的字符数据作为字符串进行返回,读到末尾时,返回NULL
2.2 转换流:
该类型是字符流和字节流的桥梁。该流的对象可以对读取数据的字节流按照设定的编码进行转换。读取流: (默认编码) InputStreamReader(new InputStream)
(设定编码) InputStreamReader(new InputStream,String charSet)
写入流: (默认编码) OutputStreamWriter(new OutputStream)
(设定编码) OutputStreamWriter(new OutputStream,String charSer)
比较: (默认编码) FileReader fr = new FileReader("test.txt"); ==== InputStreamReader isr = new InputStreamReader(new FileInputStream("test.txt"));
(设定编码) FileReader fr = new FileReader("test.txt"); ==== InputStreamReader isr = new InputStreamReader(new FileInputStream("text.txt"),String charSet);
2.3 数据流:
该类型直接对一些基本类型的数据进行存储和读取,不需要进一步的住转换。读取:DataInputStream(InputStream)
写入:DataOutputStream(OutputStream)
2.4 打印流:
PrintStream:是一个字节打印流接受3种数据类型的值:1.字符串类型 2.File对象 3.OutputStream
PrintWriter:是一个字符打印流
接受4种数据类型的值: 1.字符串类型 2.File对象 3.OutpStream 4.Writer
2.5 对象流:
常用于try catch。相关文章推荐
- JAVA反射机制
- java接口回调
- ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法
- JAVA开发 - Spring MVC学习
- MyEclipse或Eclipse安装PyDev插件
- java中的内部类的用法
- Java:的“==”和equals方法
- SpringMVC学习笔记(二) -- 提交数据至后台controller
- git常见的命令总结
- 《深入浅出struts2》--第二章,初识struts
- android studio导入eclipse或者 android studio工程文件的超简技巧
- Mac下配置JAVA_HOME
- eclipse未能识别我的手机
- spring MVC配置详解
- Java线程池总结
- HashMap底层实现(源码分析)
- Struts2自定义拦截器实例—登陆权限验证
- 百度Java研发面经100题 总结
- 使用Dom4j解析XML
- java 学习书籍-想精通java的必看