在我们之前学习的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中io流的问题,求答案
FileOutputStream(String name,boolean append) 创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。 new FileOutputStream("mm.txt",false);
面渣逆袭:Java基础面试题,46道Java基础八股文(4.8万字,30+手绘图...
字符串处理是Java中的重要部分,String类的不可变性和StringBuffer和StringBuilder的可变性为不同场景提供了选择。字符串常量池优化内存,而字符串拼接在Java 7后与StringBuilder的行为保持一致。Java异常处理体系,包括Error和Exception的分类,以及try-catch、finally、throw和throws的使用,对于错误处理和方法签名...
JAVA IO看了老久,会点点了。不过有点 问题 一一列出来,会的帮忙解答...
1、根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader 低端流:所有的外界设备中的流都是低端流,比如InputStream,OutputStream 如何区分:所有的流对象的后缀中包含Reader或者Writer的都是高端流,反之,则基本上为低端流,不过也有例外,比如PrintStream就是高端流 2、...
Java面试有哪些问题?
其实就简单的问了句,你了解哪些排序,我说冒泡排序,插入排序,快排,堆排序...,然后这面试官嘲讽的笑了一声,我赶紧回想了哪个有问题,结果想了下没想到哪个字说的有问题我就问 你为什么笑,然后他说堆排序是什么东西。老实说听到这句话我是真的很想直接走的,但是想下这对不起我请的一上午假。...
java中关于io流的问题
1 遍历 目录树,找到每一个.txt文件,每当找到一个txt时,启动一个新线程,解密,找出tarena所在行,并保存相关数据在内存如hashmap中,2 应用程序从hashmap中直接获取所有的内容 这种策略牺牲的是读的时间 其他差不多 第三种策略 使用lucene框架,主要是针对每个文件建立分词索引,这里意义不大,所以...
JAVA IO流问题
第二段是输入流,跟第一段相反,从外部读入数据到程序。与平台无关我个人理解就是不管外部是什么样的平台系统 xp linux or mac都可以通过这种代码读取和写数据 另外真实开发中都有封装好的类供你使用,个人写到stream的机会并不是很多。比如我就比较喜欢apache-commons io jar包中的 FileUtil类,大...
java中的io流问题 FileInputStream中的read()返回的int类型是读取字节...
不是,两个都是返回Ascll编码,bufferInputStream是缓冲流,提高效率
Java 编程基础题:io流和集合综合相关的题目不会做,哪位大神来看一下...
1、IO读取文本信息;2、TreeSet的排序问题。解决过程如下:首先通过TreeSet(Comparator<? super E> comparator) 构造方法指定TreeSet的比较器进行排序,而创建自己的实现比较器。package test.treeset;import java.util.Comparator;public class MyComparator implements Comparator<Student> { @Override public...
Java程序员面试指南目 录
Java语言基础:条件运算符、赋值运算符等面试题,数据类型转换和值传递 数组与字符串:一维和二维数组,String与StringBuffer,相关面试题 流程控制:if、switch、循环语句,以及异常处理和内存管理面试题概要:代码分析与运行结果理解 多态、内部类、面向对象概念 异常处理、内存管理、IO流 线程与并发...
Java,IO流问题,求指定
在62行加个判断。String fileName = file.getName();if(fileName.endwith(".jpg")){ //对文件做操作 }