在咱们之前学习的 java 知识点中,有一个模块针对于文件的复制和存储都十分便捷,面试时也是频繁的会遇到,那就是 IO 流。本篇对 IO 流一些常见的根底知识点进行了整顿,并有一个实例操作。这里以题目和答案的模式展现给大家,具体看看有哪些内容能够学习的吧。
1. 什么是 IO 流
它是一种数据的流从源头流到目的地。比方文件拷贝,输出流和输入流都包含了。输出流从文件中读取数据存储到过程 (process) 中,输入流从过程中读取数据而后写入到指标文件。
2.java 中有几种类型的流
字符流和字节流。字节流继承 inputStream 和 OutputStream, 字符流继承自 InputSteamReader 和 OutputStreamWriter。
3. 字节流如何转为字符流
字节输出流转字符输出流通过 InputStreamReader 实现,该类的构造函数能够传入 InputStream 对象。
字节输入流转字符输入流通过 OutputStreamWriter 实现,该类的构造函数能够传入 OutputStream 对象。
4. 字节流与字符流的区别
以字节为单位输入输出数据,字节流依照 8 位传输
以字符为单位输入输出数据,字符流依照 16 位传输
5. 谈谈 Java IO 外面的常见类,字节流,字符流、接口、实现类、办法阻塞
答:输出流就是从内部文件输出到内存,输入流次要是从内存输入到文件。
IO 外面常见的类,第一印象就只晓得 IO 流中有很多类,IO 流次要分为字符流和字节流。字符流中有抽象类 InputStream 和 OutputStream,它们的子类 FileInputStream,FileOutputStream,BufferedOutputStream 等。字符流 BufferedReader 和 Writer 等。都实现了 Closeable, Flushable, Appendable 这些接口。程序中的输入输出都是以流的模式保留的,流中保留的实际上全都是字节文件。
java 中的阻塞式办法是指在程序调用改办法时,必须期待输出数据可用或者检测到输出完结或者抛出异样,否则程序会始终停留在该语句上,不会执行上面的语句。比方 read()和 readLine()办法。
6. 简述 File 类的基本功能
解决文件和获取文件信息, 文件或文件夹的治理
除了读写文件内容其余的都能够做
7. 什么是 java 序列化,如何实现 java 序列化?
序列化就是一种用来解决对象流的机制,所谓对象流也就是将对象的内容进行流化。能够对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序 列 化 的 实 现:将 需 要 被 序 列 化 的 类 实 现 Serializable 接 口,该 接 口 没 有 需 要 实 现 的 方 法,implements Serializable 只是为了标注该对象是可被序列化的,而后应用一个输入流 (如:FileOutputStream) 来结构一个 ObjectOutputStream(对象流)对象,接着,应用 ObjectOutputStream 对象的 writeObject(Object obj)办法就能够将参数为 obj 的对象写出(即保留其状态),要复原的话则用输出流。
8.FileInputStream 和 FileOutputStream 是什么
这是在拷贝文件操作的时候,常常用到的两个类。在解决小文件的时候,它们性能体现还不错,在大文件的时候,最好应用 BufferedInputStream (或 BufferedReader) 和 BufferedOutputStream (或 BufferedWriter)
实例:
public class InputAndOutputBuffering
{public static void main(String args[]) throws IOException
{FileInputStream fistream = new FileInputStream("pqr.txt"); BufferedInputStream bistream = new BufferedInputStream(fistream);
FileOutputStream fostream = new FileOutputStream("xyz.txt");
BufferedOutputStream bostream = new BufferedOutputStream(fostream);
int temp;
while(( temp = bistream.read() ) != -1 )
{bostream.write(temp);
System.out.print((char) temp);
}
bostream.close(); fostream.close();
bistream.close(); fistream.close();
}
}
以上就是 java io 面试题的内容分享,很多题目都是咱们在学习时遇到的基本概念,大家能够通过本篇的学习进行一个 IO 流回顾,而后课后找一些其余的知识点进行坚固。