精选Java IO面试题(转发)

前言

本文转发自精选Java IO面试题及参考答案,内容有所修改。

Java IO面试题汇总

  1. 什么是IO流?
    它是一种数据的流从头流到目的地。比如文件拷贝,输入流从文件中读取数据存储到进程(process)中,输出流从进程中读取数据然后写入到目标文件。
  2. 字节流和字符流的区别?
    字节流用于操作包含ASCII字符的文件。JAVA也支持其他的字符如Unicode,为了读取包含Unicode字符的文件,JAVA语言引入了字符流。ASCII作为Unicode的子集,对于英语字符的文件,可以使用字节流也可以使用字符流。
  3. Java中流类的超类均为抽象类)主要由哪些组成?
    1)java.io.InputStream(字节输入流)
    2)java.io.OutputStream(字节输出流)
    3)java.io.Reader(字符输入流)
    4)java.io.Writer(字符输出流)
  4. FileInputStream和FileOutputStream是什么?
    1)这是在拷贝文件操作的时候,经常用到的两个类。
    2)在处理小文件的时候,它们的性能表现还不错,在大文件的时候,最好使用BufferedInputStream(或BufferedReader)和BufferedOutputStream(或BufferedWriter
  5. 字节流和字符流,你更喜欢哪一个?
    更喜欢使用字符流。许多在字符流中存在的特性,字节流中不存在。比如使用BufferedReader而不是BufferedInputStream或DataInputStream,它其中包含一个‘readLine()’方法用于读取文本行;又比如BufferedWriter流中有一个独特的向文件写入一个换行符的方法‘newLine()’用来读取下一行,但是在字节流中我们需要做额外的操作。
  6. System.out.println()是什么?
    println是PrintStream的一个方法。out是一个静态PrintStream类型的成员变量,System是一个java.lang包中的类,用于和底层的操作系统进行交互。
  7. 什么是Filter流?
    1)Filter Stream是一种IO流。
    2)Filter流的主要作用是:对存在的流增加一些额外的功能,像给目标文件增加源文件中不存在的行数,或者增加拷贝的性能。
  8. 有哪些可用的Filter流?
    1)在java.io包中主要由4个可用的filter Stream组成。两个字节filter stream,两个字符filter stream。分别是:FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
  9. 有哪些Filter流的子类?
    1) LineNumberInputStream:给目标文件增加行号。
    2)DataInputStream:有些特殊的方法如:readInt()、readDouble()和readLine()等可以一次性的读取一个int, double和一个string类型的数据。
    3)BufferedInputStream:增加性能。
    4)PushbackInputStream:推送要求的字节到系统中。
  10. SequenceInputStream的作用是什么?
    使用很少的代码实现‘拷贝多个文件到一个目标文件’的目的。
  11. 说说PrintStream和PrintWriter的异同点?
    他们两个的功能相同,但是属于不同的分类:字节流和字符流。他们都有println()方法。
  12. 文件拷贝的时候,哪一种流可用于提升更多的性能?
    1)在字节流的时候,使用BufferedInputStream和BufferedOutputStream
    2)在字符流的时候,使用BufferedReader和BufferedWriter
  13. 说说管道流(Piped Stream)
    1)有四种管道流:PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
    2)在多个线程或进程中传递数据的时候管道流非常有用。
  14. 说说File类
    1)它不属于IO流,也不是用于文件操作的
    2)它主要是用于获取一个文件的属性、读写权限、大小等信息
  15. 说说RandomAccessFile?
    1)它在java.io包中是一个特殊的类,既不是输入流也不是输出流,它两者都可以做到。
    2)它是Object的直接子类。通常来说,一个流只有一个功能,要么读,要么写。但是RandomAccessFile类既可以读文件,也可以写文件
    3)DataInputStream和DataOutputStream有的方法,在RandomAccessFile中都存在。

附:Java IO运行机制图解

Java IO运行机制图解

附:Java IO中字节流模块的树形分支图

Java IO中字节流模块的树形分支图

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面试中,Java IO是一个常见的考点。以下是一些常见的Java IO面试题及答案: 1. 什么是Java IO流?有哪些不同类型的流? Java IO流是用于处理输入和输出的机制。Java提供了两种类型的流:字节流和字符流。字节流以字节为单位读取和写入数据,而字符流以字符为单位读取和写入数据。 2. 什么是输入流和输出流? 输入流用于从源中读取数据,而输出流用于将数据写入目标。 3. 什么是字节流和字符流? 字节流用于读取和写入字节数据,适用于处理二进制数据。字符流用于读取和写入字符数据,适用于处理文本数据。 4. 请举例说明如何使用Java IO流进行文件读写操作。 例如,可以使用FileInputStream和FileOutputStream类来读取和写入字节数据,使用FileReader和FileWriter类来读取和写入字符数据。 5. 什么是缓冲流?为什么使用缓冲流? 缓冲流是一种带有缓冲区的流,它可以提高IO性能。它通过在内存中缓冲一部分数据,减少了对底层资源的频繁访问,从而提高了效率。 6. 什么是序列化和反序列化?如何在Java中进行对象的序列化和反序列化? 序列化是将对象转换为字节流的过程,反序列化是将字节流转换为对象的过程。在Java中,可以通过实现Serializable接口来使一个类可被序列化。使用ObjectOutputStream类可以将对象序列化为字节流,使用ObjectInputStream类可以将字节流反序列化为对象。 7. 什么是文件过滤器?如何使用文件过滤器来筛选文件? 文件过滤器是用于筛选文件的工具。在Java中,可以使用File类的listFiles()方法结合文件过滤器来筛选文件。例如,可以使用FileFilter接口的实现类来过滤指定类型的文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值