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接口

原文地址:https://www.cnblogs.com/lgg20/p/12334672.html