起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > JavaSE面试题(十四):基本IO流

JavaSE面试题(十四):基本IO流

时间:2021-07-29 15:17:51来源:Java开发培训网 作者:Java开发教程网 已有: 名学员访问该课程

前言: Q:什么是IO流? 它是一种数据的流从源头流到目的地。比如文件拷贝,输入流和输出流都包括了。输入流从文件中读

Q:什么是IO流?

它是一种数据的流从源头流到目的地。比如文件拷贝,输入流和输出流都包括了。输入流从文件中读取数据存储到进程(process)中,输出流从进程中读取数据然后写入到目标文件。

Q:Java中有几种类型的流?

按照流的方向:

输入流(inputStream)

输出流(outputStream)。

按照实现功能分:

节点流(可以从或向一个特定的地方(节点)读写数据。如FileReader)

处理流(是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。)

按照处理数据的单位:

字节流

字符流

字节流继承于InputStream和OutputStream

字符流继承于InputStreamReader和OutputStreamWriter

字符流.png字节流.png

Q:字节流和字符流的区别?

字节流在JDK1.0中就被引进了,用于操作包含ASCII字符的文件。JAVA也支持其他的字符如Unicode,为了读取包含Unicode字符的文件,JAVA语言设计者在JDK1.1中引入了字符流。ASCII作为Unicode的子集,对于英语字符的文件,可以可以使用字节流也可以使用字符流。

Q:字节流有了为何还要有字符流?

字符流是由 Java 虚拟机将字节转换得到的,问题就出在这个过程还算是非常耗时,并且,如果我们不知道编码类型就很容易出现乱码问题。所以, I/O 流就干脆提供了一个直接操作字符的接口,方便我们平时对字符进行流操作。如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

Q:FileInputStream和FileOutputStream是什么?

这是在拷贝文件操作的时候,经常用到的两个类。在处理小文件的时候,它们性能表现还不错,在大文件的时候,最好使用BufferedInputStream (或 BufferedReader) 和 BufferedOutputStream (或 BufferedWriter)

Q:Files的常用方法都有哪些?

Files. size():查看文件个数。

Files. read():读取文件。

Files. write():写入文件。

Files. exists():检测文件路径是否存在。

Files. createFile():创建文件。

Files. createDirectory():创建文件夹。

Files. delete():删除一个文件或目录。

Files. copy():复制文件。

Files. move():移动文件。

Q:什么是 Java 序列化,如何实现 Java 序列化?

序列化:

是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:

将需要被序列化的类实现Serializable接口 ,该接口没有需要 实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造

一个 ObjectOutputStream(对象流)对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj)方法就可以将参数为 obj的对象写出(即保存其状态),要恢复的话则用输入流。

Q:如何将一个 Java 对象序列化到文件里?

在 Java 中能够被序列化的类必须先实现Serializable接口,该接口没有任何抽象方法只是起到一个标记作用。

Q:如何实现对象克隆?

两种方式:

实现 Cloneable 接口并重写 Object 类中的 clone()方法;

实现 Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!

文章出自:http://qh.itpxw.cn/peixun/software/202191297.html

文章标题:JavaSE面试题(十四):基本IO流



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容