为什么会有IO流,及如何使用?
来源:互联网 发布:vb从入门到精通 pdf 编辑:程序博客网 时间:2024/05/07 13:45
为什么会有IO流,及如何使用?
数据要传输,必定会有输入端与输出端。
在Java中,数据分为:基本数据类型和引用数据类型。
基本数据类型
基本数据类型,计算机只能识别0与1,这些是byte字节。
由此就有了字节流,换句话说,任何数据都可以通过字节流进行传输。
然而,在传输的过程中,会遇到一些问题。
e.g. 乱码!
乱码是因为在传输字符时,只读取到了一半的字节,字节码有11111111时,也就是-1码时,传输中止,为此,将read()读取的方法设定为每读一次返回的是一个字节,但不用byte接收,而用int接收。
为了彻底的避免乱码的问题,以及提高传输效率,则有了字符流。但字符流只用于操作纯文本的文件。因为当字符流拷贝非纯文本时,需要先将字节转换成字符,但转换字符如果没有成功,则会变成?,写出去的时候就会将?写出,也会出现乱码。
从此,化分两道:字节流与字符流。
- 字节流继承于:InputStream, OutputStream
- 字符流继承于:Reader, Writer
引用数据类型
- 引用数据对象继承于:ObjectInputStream, ObjectOutputStream
对象必须序列化Serializable,输出流序列化写出对象,输入流则反序列化。
若有多个对象,可将多个对象放入一个集合中,写入ArrayList();
读取时,读入一次即可。
如何使用?
基本数据类型:
- 逐个字节拷贝(不太推荐,因效率太低)
- 定义一个数组,1024的整数倍(推荐使用)
- 带Buffer的拷贝(推荐使用)
引用数据类型:
- 序列化与反序列化
0 0
- 为什么会有IO流,及如何使用?
- 16 为什么会有IO流?
- Unsafe--Java为什么会引入及如何使用Unsafe
- Java为什么会引入及如何使用Unsafe
- 为什么会有serialVersionUID
- 为什么会有“剩男剩女”
- 为什么会有句柄
- 为什么会有hibernate
- 为什么会有servlet?
- 为什么会有异常
- 为什么会有JavaScript???
- 为什么会有String,StringBuffer,StringBuilder及区别?
- 为什么使用MAVEN 3.2.1会有版本问题?
- 为什么使用MAVEN 3.2.1会有版本问题?
- 为什么会有session和cookie以及简单使用
- IO流有很多,那么在实际操作中如何确定使用哪个IO流的呢?
- 为什么会有java,为什么会有.net
- 为什么会有Java,为什么会有.NET
- linux 编译问题
- Ubuntu下程序图标的设定方法
- 在 Win7 环境使用 Docker Images模拟 IBM Bluemix Blockchain Service
- Asynchttpclient实现模拟登陆教务系统失败解决办法
- Reveal使用教程-使用Reveal查看任意iOS App的图层结构
- 为什么会有IO流,及如何使用?
- NOIP模拟题 2016.10.29 [DP] [中位数相关] [折半搜索]
- win7下80端口被(Pid=4)占用的解决方法
- 自用Eclipse快捷键温习
- CSS的reset
- 编程再也不担心颜色不够用了
- nginx 日志格式化,按天分割 并删除七天的日志
- Sphinx (Sphinx(斯芬克司))
- Java经典算法(一)