在咱们之前学习的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流回顾,而后课后找一些其余的知识点进行坚固。