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