IO流
什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别?
Bit最小的二进制单位,是计算机的操作部分 取值0或者1
Byte是计算机操作数据的最小单位由8位bit组成 取值(-128-127)
Char是用户的可读写的最小单位,在java里面由16位bit组成 取值(0-65535)
什么是流,按照传输的单位,分成哪两种流,并且他们的父类叫什么?按照实现功能分为哪两种?按照传输的方向可以分为哪两种?
流是数据间的字节流。 字符流 :Reader Writer 字节流:InputStream OutputStream
节点流(OutputStream),处理流(OutputStreamWriter)
输入流(InputStream) 输出流(OutputStream)
BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法?
缓冲流,可以将读取的内容存在内存里面,有readLine()方法
什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征?
节点流 :直接与数据源相连,用于输入或者输出
处理流:在节点流的基础上对之进行加工,进行一些功能的扩展
处理流的构造器必须要 传入节点流的子类
如果我要对字节流进行大量的从硬盘读取,要用那个流,为什么?打印出不同类型的数据到数据源?
BufferedInputStream 使用缓冲流能够减少对硬盘的损伤
Printwriter 可以打印各种数据类型
怎么样把输出字节流转换成输出字符流,说出它的步骤?
使用 转换处理流OutputStreamWriter 可以将字符流转为字节流
New OutputStreamWriter(new FileOutputStream(File file));
什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作?
对象序列化:将对象以二进制的形式保存在硬盘上
反序列化:将二进制的文件转化为对象读取
实现serializable接口。 不想让字段放在硬盘上就加transient。
在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用?
是版本号,要保持版本号的一致 来进行序列化。为了防止序列化出错
InputStream里的read()返回的是什么,read(byte[] data)是什么意思,返回的是什么值?
返回的是所读取的字节的int型(范围0-255)
read(byte [ ] data)将读取的字节储存在这个数组
返回的就是传入数组参数个数
流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?
流一旦打开就必须关闭,使用close方法
放入finally语句块中(finally 语句一定会执行)
调用的处理流就关闭处理流
多个流互相调用只关闭最外层的流
io流怎样读取文件的?
使用File对象获取文件路径,通过字符流Reader加入文件,使用字符缓存流BufferedReader处理Reader,再定义一个字符串,循环遍历出文件。
什么情况下会在你得java代码中使用可序列化? 如何实现java序列化?
把一个对象写入数据源或者从一个数据源读出来,使用可序列化,需要实现Serializable接口
用什么把对象动态的写入磁盘中,写入要实现什么接口?
ObjectInputStream,需要实现Serializable接口