• 技术文章 >面试题 >java面试题

    java中io流面试题的整理

    小妮浅浅小妮浅浅2021-01-19 18:32:27原创16363

    在我们之前学习的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流回顾,然后课后找一些其他的知识点进行巩固。更多Java试题指路:java面试题

    专题推荐:javaio面试题
    品易云
    上一篇:java集合类面试题 下一篇:java面向对象面试题的考点整理

    相关文章推荐

    • java之面试题的汇总和分类• java面试题的基础知识点• Java面试题的分类整理• java算法面试题• java集合类面试题

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网