IO流题目
Java面试题(IO流)
1、以下哪些类提供了创建一个目录的方法?AA、FileB、DataOutputC、DirectoryD、FileDescriptor解析:不解释2、以下说法正确的是A、RandomAccessFile类是File类的子类B、FileWriter类提供有操作基本数据类型的方法C、RandomAccessFile类提供有删除磁盘文件的方法D、File类提供有删除磁盘文件的方法解析:不解释3、以下哪个类的构造器需要mode参数r或rw?CA、DataInputStreamB、InputStreamC、RandomAccessFileD、File解析:不解释4、以下哪个关于Serializable的描述是正确的?BA、Serializable是Java语言中的一个关键字B、Serializable是一个可以被实现的接口C、Serializable是一个可以被继承的类D、以上均不对解析:Serializable序列化接口5、从InputStream对象中如何创建一个Reader对象?CA、使用InputStream类中定义的createReader()方法B、使用Reader类中的createReader()方法C、构造一个InputStreamReader实例,将InputStream对象作为InputStreamReader类构造器的参数传入D、构造一个OutputStreamReader实例,将InputStream对象作为OutputStreamReader 类构造器的参数传入解析:不解释6、以下代码的执行结果是?Cpublic class Example {public static void main(String[] args) {File f = new File("c:\\large.txt");}}A、large.txt文件在本地硬盘上被创建B、在Unix系统上运行失败,因为路径分割符不正确C、large.txt文件在本地硬盘上没有被创建D、如果large.txt文件已经存在,则一个异常被抛出解析:没有做mkdir动作7、以下代码的执行结果是?Apublic class Example {public static void main(String[] args) {RandomAccessFile raf = new RandomAccessFile("test.java", "rw");raf.seek(raf.length());}}A、代码编译失败B、运行期IOException异常抛出C、文件指针定位在最后一个字符前D、文件指针定位在最后一个字符后解析:seek方法的作用是改变文件索引指针位置,但是题目中没有声明异常8、以下代码的执行结果是?Apublic class Example {public static void main(String[] args) throws IOException {PrintStream pr = new PrintStream(new FileOutputStream("outfile"));System.out = pr;System.out.println("OK!");}}A、代码编译失败,因为为System.out是一个常量,不能赋值B、代码编译成功,但因为System.out是一个常量,导致运行期异常抛出C、控制台输出OK!D、outfile文件中输出OK!解析:不解释9、给出以下代码的执行结果是?Apublic class Example {public static void main(String[] args) throws IOException {StringReader strinin = new StringReader("test");LineNumberReader in = new LineNumberReader(strinin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A、testB、1.testC、1:testD、1 test解析:10、以下代码的执行结果是?Bpublic class Example {public static void main(String[] args) throws IOException {RandomAccessFile file = new RandomAccessFile("test.txt", "rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(10000000);file.writeInt(777);file.writeFloat(0.0001f);file.seek(5);System.out.println(file.readInt());file.close();}}A、123456B、7890C、10000000D、777解析:本例中共写入字节数为1(boolean)+4(int)+8(long)+4(int)+8(float)=29,seel ()方法用于从文件起始位置跳过制定数量的字节数,seek(5)是跳过了5个字节,所以从第6个字节开始读取,即从写入的第二个int型值(7890)开始读取,故打印输出为789011、以下代码的执行结果是?Cpublic class Example {public static void main(String[] args) throws IOException {try {String strString = "test";char buffer[] = new char[strString.length()];strString.getChars(0, strString.length(), buffer, 0);FileWriter f = new FileWriter("MyFile1.txt");FileWriter f1 = f;f1.close();for (int i = 0; i < buffer.length; i++) {f.write(buffer[i] + "");}f.close();FileWriter f2 = new FileWriter("MyFile2.txt");f2.write(buffer);f2.close();} catch (IOException e) {System.out.println(e.getMessage());}}}A、运行期无异常抛出B、执行f1.close()抛出IOException异常C、f.write(buffer[i]+"")抛出IOException异常D、执行new FileWriter("MyFile1.txt")抛出IOException解析:此行的上一行已经关闭流12、以下哪项是Java语言中定义的字节流?ADA、OutputStreamB、ReaderC、WriterD、InputStream解析:不解释13、在输入流的read方法返回哪个值的时候表示读取结束?CA、0B、1C、-1D、null解析:不解释14、为了从文本文件中逐行读取内容,应该使用哪个处理流对象?AA、BufferedReaderB、BufferedWriterC、BufferedInputStreamD、BufferedOutputStream解析:readLine方法15、为了实现自定义对象的序列化,该自定义对象必须实现哪个接口?BA、VolatileB、SerializableC、RunnableD、Transient解析:Serializable序列化接口16、以下程序执行结果是?Bpublic class Example {public static void main(String[] args) throws IOException {String s = "x,yy,123";Scanner sc = new Scanner(s);while (sc.hasNext()) {System.out.println(sc.next() + " ");}}}A、x yyB、x,yy,123C、x yy 123D、x,yy解析:.Next()是字符串输入方法17、现有:f是一个File类实例的合法引用fr是一个FileReader类实例的合法引用br是一个BufferedReader类实例的合法引用如下代码:String line = null;//插入代码处System.out.println(line);}哪一行代码插入到插入代码处将循环一次输出文本文件的一行?DA、while((line = f.read())!=null){B、while((line = fr.read())!=null){C、while((line = br.read())!=null){D、while((line = br.readLine())!=null){解析:readLine方法返回值为String18、现有int x = reader.read(),下列哪一项正确BA、reader不是FileReader或者BufferedReader类型B、reader可以使FileReader或者BufferedReaderC、reader可以使FileReader类型,但不能使BufferedReader类型D、reader可以使BufferedReader类型,但不能使FileReader类型解析:不解释19、现有:String s = "write a line to a file";w.print(s + "\n");哪一个是对的?CA、w既可以是PrintWriter类型,也可以是BufferedWriter类型B、w既不可以是PrintWriter类型,也不可以是BufferedWriter类型C、w可以是PrintWriter类型,但不可以是BufferedWriter类型D、w既可以是BufferedWriter类型,也可以是PrintWriter类型解析:不解释20、有如下代码:public class Example implements Serializable {Collar c = new Collar();}class Collar implements Serializable {CollarPart cp1 = new CollarPart();CollarPart cp2 = new CollarPart();}class CollarPart implements Serializable {}如果Example实例被序列化,则多少对象将被序列化?DA、1B、2C、3D、4解析:new Example c cp1 cp221、以下关于File类的描述哪些是正确的?ACA、File类可以用于访问当前工作路径中的文件B、当一个File类实例被构建时,对应的目录或文件在本地文件系统中被创建C、File类可以用于访问本地文件系统中的目录或文件D、当一个File类实例被垃圾回收器回收后,对应的目录或文件也被删除解析:File实例被构建时需要mkdir才可以创建文件File实例被回收后,创建的文件不会被删除22、以下哪些语句是构建RandomAccessFile实例的正确形式?ADA、RandomAccessFile("file","r");B、RandomAccessFile("r","file");C、RandomAccessFile('r',"file");D、RandomAccessFile("file","rw");解析:不解释23、请问以下哪些修饰符用于修饰类属性时,该属性不能被序列化?BCA、privateB、staticC、transientD、protected解析:static transient volatile final不可以序列化24、以下哪些是FileOutputSteram类的正确构造形式?A、FileOutputStream(FileDescriptor fd)B、FileOutputStream(String n,boolean a)C、FileOutputStream(boolean a)D、FileOutputStream(File f)解析:FileOutputStream(File file)FileOutputStream(File file, boolean append)FileOutputStream(FileDescriptor fdObj)FileOutputStream(String name)FileOutputStream(String name, boolean append)25、以下哪些是定义在java.io包中的抽象类?ACA、InputStreamB、PrintStreamC、ReaderD、FileInputStream解析:不解释26、以下哪些描述是正确的?ACA、InputStream和OutputStream类是基于字节流的B、ObjectInputStream类和ObjectOutputStream类不支持序列化的对象C、Reader和Writer是基于字符流的D、Reader类和Writer类是支持对象序列化的首选解析:不解释27、以下哪些描述是正确的?ABA、Writer类可以使用不同的字符编码向输出流写入字符B、Writer类可以向输出流写入Unicode字符C、Writer类提供向输出流写入任意Java基本数据类型的方法D、Writer类提供向输出流写入引用数据类型的方法解析:不解释28、什么是java序列化,如何实现java序列化?解析:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
IO流_练习&面试题
}catch(IOException e){
System.out.println("FileStreamTest"+e);
}
}
}
-----------------------------------------------------
A 位
B 字节
C 字符
D 文件
4.▁▁文件流类的 close 方法可用于关闭文件。
A FileOutputStream
B FileInputStream
C RandomAccessFile
D FileWrite
5.RandomAccessFile 类的▁▁方法可用于从指定流上读取整数。
对应于系统调用System.in和System.out。这样的两个流加上System.err统称为标准流,它们是在System类中声明putStream in
publicstaticPrintStream out
public static PrintStream err
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:字节流,字符流。
字节流继承于InputStream OutputStream,
字符流继承于Reader Writer。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
public static void main(String[] args){
io流的面试题
io流的面试题在Java编程中,IO流是一个非常重要的概念。
在面试过程中,经常会涉及到与IO流相关的问题。
本文将介绍一些常见的IO流面试题,并给出相应的解答。
以下是一些常见的问题和答案:1. 什么是IO流?IO流是用于处理输入输出的机制,它是Java程序与外部世界进行数据交换的方式。
输入流用于从外部读取数据,输出流用于向外部写入数据。
2. IO流的分类有哪些?IO流可以分为字节流和字符流。
字节流以字节为单位进行读写,而字符流以字符为单位进行读写。
字节流可以处理任意类型的数据,而字符流主要用于处理文本数据。
3. 文件读写时,常用的字节流和字符流是什么?常用的字节流是InputStream和OutputStream,常用的字符流是Reader和Writer。
它们都是抽象类,具体的实现类有很多,如FileInputStream、FileOutputStream、FileReader和FileWriter。
4. 如何使用字节流进行文件复制?使用字节流进行文件复制可以通过以下步骤实现:- 创建一个输入流对象,用于读取源文件;- 创建一个输出流对象,用于写入目标文件;- 使用循环读取字节,并将其写入输出流,直到读取到文件末尾;- 关闭输入流和输出流。
5. 如何使用字符流进行文件复制?使用字符流进行文件复制可以通过以下步骤实现:- 创建一个输入流对象,用于读取源文件;- 创建一个输出流对象,用于写入目标文件;- 使用循环读取字符,并将其写入输出流,直到读取到文件末尾;- 关闭输入流和输出流。
6. 什么是缓冲流?为什么要使用缓冲流?缓冲流是对字节流和字符流的包装,通过内部的缓冲区提高了读写的效率。
使用缓冲流可以减少对操作系统的IO次数,提高程序的性能。
7. 缓冲流的使用方法是什么?缓冲流的使用方法如下:- 创建一个字节流或字符流的对象;- 创建一个缓冲流的对象,将字节流或字符流对象作为参数传入;- 使用缓冲流来读写数据;- 关闭缓冲流,它会自动关闭内部的字节流或字符流。
(完整版)IO流题目
狂翔IT工作室IO流章节题目一.选择题1.java语言提供处理不同类型流的类的包是(D)a)java.sql b) java.util c) java.math d) java.io2.不属于java.io包中的接口的一项是(c)a)DataInput b) DataOutput c) DataInputStream d) ObjectInput3.java.io包中提供的用于筛选文件名的接口是(d)a)DataInput b) DataOutputStream c)RandomAccessFile d) FileNameFilter4.下列中,哪一个是filterInputStream类构造方法的有效参数ca)无参数b)OutputStream对象c) InputStream对象d)RandomAccessFile对象5. ByteArrayOutputStream将下列哪一项作为输出流 ca) 字符b)字节c)字节数组D)对象6. 下列流中哪一个使用了缓冲区技术AA.BuffereOutputStream B. FileInputStreamC. DataOutputStreamD.FileReader7. 下列哪个包中含有压缩文件输入流ZipInputStream类BA.java.ioB. java.util.zipC.java.util.jarD.java.awt8. 要在磁盘上创建一个文件,可以使用哪些类的实例A.FileB.FileOutputStreamC.RandomAccessFileD.以上都对9.下列字节输入流中,哪一个不能够被实例化BA.FileInputStreamB.FilterInputStreamC.ByteArrayInputStreamD.ObjectInputStream10. 能对读入字节数据进行java基本数据类型判断过滤的类是(C)A. PrintStreamB.DataOutputStreamC.DataInputStreamD.BuffereInputStream11. 使用下列哪一个类可以实现在文件的任意一个位置读写一个记录A.RandomAccessFileB.FileReaderC.FileWriterD.FileInputStream12.通常情况下,下列哪一个类的对象可以作为BufferedReader类的构造函数的参数A.InputStreamReaderB.PrintStreamC.OutputStreamReaderD.PrintWriter13. 若要创建一个新的含有父目录的目录,应该使用下列哪一个类的实例A.RandomAccessFileB.FileOutputStreamC.FileD.以上都对14. 流的概念是由以下哪个语言最先引的A.CB.C++C.JavaD.Basic15. 下列哪一个不属于计算机常用的外部设备A.显示器B.网络C.内存D.键盘16. 与InputStream流相对应的Java系统的标准输入对象是A.System.inB.System.outC.System.errD.System.exit()17. 下列File类的方法中,哪一个用于返回文件的相对的文件名A.getCanonicalPath()B.getAbsolutePath()C.getCanonicalFile()D.getAbsoluteFile()18. 下列哪个不属于j2sdk1.4 提供的新I/O功能A.内存映射B.文件锁定C.字符及编码D.阻塞I/O19.下列选项中,哪一个属于输出流A.从打印机流向控制器的数据流B.从键盘流向内存的数据流C.从内在流向控制器的数据流D.从内存流向网络的数据流20.FileOutputStream类的父类是()A.FileB.FileOutputC.OutputStreamD.InputStream 二.填空题1. Java的I/O流包括字节流、字符流、文件流、对象流和管道流2. 按照流的方向来分,I/O流包括输入和输出流3. 流是一个流动的数据从流向4. FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与InputStreamReader 和BufferedReader 一起5. 向DataOutputStream对象dos 的当前集团处写入一个保存在变量f中的浮点数的语句是dos.writeDouble(f)6. java通过过滤流对I/O访问提供同步处理机制7. FileChannel类为磁盘文件映射入内存提供了一个通道8. 输入输出在计算机中有两个主要作用:采集数据和提供数据处理结果。
14.IO流作业
IO流作业一、填空题1.Java IO流可以分为和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行。
2.输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,方法给程序提供了一个从输入流中读取数据的基本方法。
3.read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回。
4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出____________________。
5.Java IO体系中,____________________是字节输入流,不仅提供了存取所有Java基础类型数据(如:int,double 等)和String的方法,也提供了提供存取对象的方法。
6.Java IO体系中,____________________是字节输出流,提供了可以存取所有Java基础类型数据(如:int,double 等)和String的方法,但没有提供存取对象的方法。
7.____________是指将Java对象转换成字节序列,从而可以保存到磁盘上,也可以在网络上传输,使得不同的计算机可以共享对象。
二、选择题1. 使用Java IO流实现对文本文件的读写过程中,需要处理下列()异常。
(选择一项)A ClassNotFoundExceptionB. IOExceptionC. SQLExceptionD. RemoteException2. 在Java的IO操作中,()方法可以用来刷新流的缓冲。
(选择两项)A void release()B. void close()C. void remove()D. void flush()3. 在Java中,下列关于读写文件的描述错误的是()。
(选择一项)A Reader类的read()方法用来从源中读取一个字符的数据B. Reader类的read(int n )方法用来从源中读取一个字符的数据C. Writer类的write(int n)方法用来向输出流写入单个字符D. Writer类的write(String str)方法用来向输出流写入一个字符串4. 阅读下列文件定入的Java代码,共有()处错误。
IO流习题
I/O流习题一、选择题1.下列类中( )不是输入输出流类iostream的派生类。
(a) fstream (b) ofstream(c) strstream (d) ostrstream2.在下列选项中()是ostream类的对象。
(a) cin (b) cerr (c) clog (d) cout3.read函数的功能是从输入流中读取()。
(a)一个字符(b)当前字符(c)一行字符(d)指定若干个字节4.下列选项中,用于清除基数格式位设置以十六进制输出的语句是()。
(a)cout<<setf(ios::dec,ios::basefield);(b)cout<<setf(ios::hex,ios::basefield);(c)cout<<setf(ios::oct,ios::basefield);5.下列格式控制符,在iostream.h中定义的是(),在iomanip.h中定义的是()。
(a)endl (b) setfill (c) setw (d) oct6.下列串流类,在strstream.h中定义的是(),在iomanip.h中定义的是()。
(a)istringstream (b) istrstream (c) ostringstream (d) ostrstream 7.包含类fstream定义的头文件是()。
(a)fstream.h (b) ofstream.h (c) ifstream.h (d) iostream.h 8.要求可打开文件“D:\file.dat”写入数,错误的语句是()。
(a)ifstream infile(“D:\file.dat”,ios::in);(b)ifstream infile(“D:\\file.dat”,ios::in);(c)ofstream infile(“D:\file.dat”,ios::out);(d)fstream infile(“D:\ \file.dat”,ios::in | ios::out);9.假定已定义浮点型变量data ,以二进制方式把data 的值写入输出文件对象outfile中去,正确的语句是()。
公司内部Javaio流笔试题
框架
* 类
* 流的分类
* 基本字节流
* 字节过滤流
* 基本字符流、桥转换
* 字符过滤流
* 对象序列化
练习
. (类)以下关于类说法正确的是:
.一个对象代表了操作系统中的一个文件或者文件夹
.可以使用对象创建和删除一个文件
.可以使用对象创建和删除一个文件夹
.当一个对象被垃圾回收时,系统上对应的文件或文件夹也被删除. (类)有如下代码:
{
( []){
(“”);
}
}
请选择一个正确答案:
. 文件在系统中被创建
. 在系统上运行出错,因为路径分隔符不正确
. 文件在系统中没有被创建
. 如果文件已存在,则抛出一个异常
. (类)将下列代码补充完整
{
( []) {
;
创建一个对象表示当前目录下的“”文件
判断该文件是否存在
如果该文件存在,则输出该文件的完整路径
}
}
. (流的分类)对于来说,从方向上来分,它是流,从数据单
位上分,它是流,从功能上分,它是流。
. (字节流, )有三个重载的方法,其中
) 无参的方法返回值为类型,表示
) ([] )方法返回值表示,参数表示
) ([] , , ) 方法返回值表示,参数分别表示。
. ()下面关于类型说法正确的是:
.创建对象是为了读取硬盘上的文件
.创建对象时,如果硬盘上对应的文件不存在,则抛出一个异常.利用对象可以创建文件
.对象读取文件时,只能读取文本文件。
. ()填空:
创建对象时,如果对应的文件在硬盘上不存在,则会;如
果对应的文件在硬盘上已经存在,则;。
公司内部Javaio流笔试题
dout.writeInt(1);
dout.writeDouble(0.01);
dout.close();
}
}
问:这个程序总共往文件中写入了多少字节?
A. 2
B. 8
C. 12
D. 16
E.字节数取决于具体平台
private String name;
private transient int age;
private Address addr;
//构造方法…
//set/get方法…
public String toString(){
return name + “ ” + age + “” + addr.toString();
}
}
public class TestObjectStream{
public static void main(String args[]) throws Exception{
Address addr = new Address(“Beijing”, “100000”);
Student stu = new Student(“Tom”, 18, addr);
BufferedOutputStream写八种基本类型
DataInputStream读对象
DataOutputStream写对象
PrintWriter缓冲功能
PrintStream读入一行文本
BufferedReader写字符串并换行
BufferedWriter写字符串
14.(对象序列化)
io流java题目
关于I/O流的java题目描述:1: 编写程序,读取附件中的test.txt日志文件2: 用户输入服务名称,打印日志中该服务被调用了多少次如用户输入服务名queryByChannelType,则输queryByChannelType 调用XX 次.3:用户输入保存文件名称,把输出结果保存到指定文件. 如用户输入文件名exam1.txt,则把结果保存在exam1.txt文件通过标准:1.自行实现全部代码2.良好的编码风格,必要的注释;3.能成功运行,并将程序和执行结果都上传到SVN中4.程序中必须按照12章和16章的要求对异常进行了处理优秀标准1.程序设计简洁优雅,能高效率的完成工作2.除了必须的异常处理外,程序本身考虑了对各种异常情况和错误的处理考虑充分3.发挥你的想象,让这个程序更合理,更有趣。
提供更多的日志分析和输出功能。
创建一个I/O流工具类:/****/package ;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import ng.StringUtils;import mons.logging.Log;import mons.logging.LogFactory;/*** 读写流* @author panwh**/public class Filecommon {private final static Log logger = LogFactory.getLog(Filecommon.class);private final static int BUFFER = 16 * 1024;/*** 一般文本文档的字符读写流* @param serverName 服务名* @param newfile 保存新文件全路径* @param oldfile 旧文件全路径*/public static void readChar(String serverName, String newfile, String oldfile) {// 读取文件test.txtFile readfile = new File(oldfile);File writefile = new File(newfile);// 定义可扩展字符StringBuilder sb = new StringBuilder();try {// 文本文档读写流一般用字符流,这里使用缓存字符流:一次性读取文件在缓存中,一次性写入文件。
IO流练习题
要求:
1、在本地磁盘D盘中创建一个ay7_iotest文件夹
2、在文件夹中创建一个以自己名字的拼音组成的文件名
3、获取创建的这个文件的最后修改日期并打印到控制台
4、将创建的这些文件和文件夹全部删除。
练习2:
1、在本地磁盘上,选择某个有内容的txt文件,将文件名修改为at7_test.txt
2、计算修改名字后的文件的大小,文件的最后修改日期、文件的名称及文件的父级目录,将这些信息打印到控制台
3、删除这个文件
练习
1、遍历本地磁盘路径为: D:/Program Files文件夹下的所有文件列表,需要遍历出来的文件的 文件名、文件大小和文件最后修改日期显示出来。
(完整版)io流课后练习题
第十一章io流练习题一、选择题1. 以下关于File 类说法正确的是( B.C ):A: 一个File 对象代表了操作系统中的一个文件或者文件夹B: 可以使用File 对象创建和删除一个文件C: 可以使用File 对象创建和删除一个文件夹D: 当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. 有如下代码,正确答案是(D ):public class TestFile{public static void main(String args[]){File file = new File(“chp13/corejava.txt”);}}A. corejava.txt 文件在系统中被创建B. 在windows 系统上运行出错,因为路径分隔符不正确C. corejava.txt 文件在系统中没有被创建D. 如果corejava.txt 文件已存在,则抛出一个异常3. 文件输出流的构造方法是public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示( B )A: 创建一个新文件B: 在原文件的尾部添加数据C: 覆盖原文件的内容D: 在原文件的指定位置添加数据4. 下面的程序段的功能是( B )File file1=new File("e:\\xxx\\yyy");file1.mkdir();A: 在当前目录下生成子目录:\xxx\yyy B: 生成目录:e:\xxx\yyyC: 在当前目录下生成文件xxx.yyy D: 以上说法都不对5.下列不是java的输入输出流的是(A.D )A: 文本流B: 字节流C: 字符流D: 文件流3.凡是从中央处理器或者是内存流向外部设备的数据流称为(C)A: 文件流B: 字符流C: 输入流D: 输出流4.下列属于文件输入输出类的是()A: FileInputStream和FileOutputStreamB: BufferInputStream和BufferOutputStreamC: PipedInputStream和PipedOutputStreamD. 以上都是5.下列叙述中,错误的是( )A: File类能够存储文件B: File类能够读写文件C: File类能够建立文件D: File类能够获取文件目录信息6.下列叙述中,正确的是( )A: Reader是一个读取字符文件的接口B: Reader是读取数据文件的抽象类C: Reader是一个读取字符文件的抽象类D: Reader是读取字节文件的一般类7.字符输出流类都是( )抽象类的子类A: FilterWriter B: FileWrite C: Writer D: OutputStreamWrite 8. 下面关于FileInputStream 类型说法正确的是():A: 创建FileInputStream 对象是为了读取硬盘上的文件B: 创建FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出异常C: 利用FileInputStream 对象可以创建文件D: 以上说法都不对二、简答题:1.简述什么是流2.简述Java IO流层次结构3.Java中的IO流桥接器类有哪些4.使用字符流的优势是什么5.简述对象的序列化与反序列化6.要想从某个文件中获得一个字符输出流,则至少有以下三种方式分别是:利用FileWriter 类、利用PrintWriter 类、利用FileOutputStream 类,并通过OutputStreamWriter 类获得Writer,请简述这三种方式获得Writer 的区别。
05-Java中的IO与NIO面试题(15题)-新增
1、Java 中IO 流?Java 中IO 流分为几种?1.按照流的流向分,可以分为输入流和输出流;2.按照操作单元划分,可以划分为字节流和字符流;3.按照流的角色划分为节点流和处理流。
Java Io 流共涉及40 多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系,Java I0 流的40 多个类都是从如下4 个抽象类基类中派生出来的。
1.InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
2.OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。
2、Java IO与NIO的区别NIO即New IO,这个库是在JDK1.4中才引入的。
NIO和IO有相同的作用和目的,但实现方式不同,NIO 主要用到的是块,所以NIO的效率要比IO高很多。
在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。
3、常用io类有那些4、字节流与字符流的区别以字节为单位输入输出数据,字节流按照8位传输以字符为单位输入输出数据,字符流按照16位传输5、阻塞IO 模型最传统的一种IO 模型,即在读写数据过程中会发生阻塞现象。
当用户线程发出IO 请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。
当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block 状态。
典型的阻塞IO 模型的例子为:data = socket.read();如果数据没有就绪,就会一直阻塞在read 方法6、非阻塞IO 模型当用户线程发起一个read 操作后,并不需要等待,而是马上就得到了一个结果。
如果结果是一个error 时,它就知道数据还没有准备好,于是它可以再次发送read 操作。
一旦内核中的数据准备好了,并且又再次收到了用户线程的请求,那么它马上就将数据拷贝到了用户线程,然后返回。
(完整版)io流课后练习题
第十一章 io 流练习题一、选择题1.以下对于 File 类说法正确的选项是( B.C ):A:一个 File 对象代表了操作系统中的一个文件或许文件夹B:能够使用 File 对象创立和删除一个文件C:能够使用 File 对象创立和删除一个文件夹D:当一个 File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除2. 有以下代码 ,正确答案是( D ):public class TestFile{public static void main(String args[]){File file = new File(“ ” );}}A. corejava.txt 文件在系统中被创立B. 在 windows 系统上运转犯错,由于路径分开符不正确C. corejava.txt 文件在系统中没有被创立D.假如 corejava.txt 文件已存在,则抛出一个异样3. 文件输出流的结构方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException ,当参数 append 的值为 true 时,表示( B )A: 创立一个新文件B: 在原文件的尾部增添数据C: 覆盖原文件的内容D: 在原文件的指定地点增添数据4. 下边的程序段的功能是( B )File file1=new File("e:\\xxx\\yyy");file1.mkdir();A: 在目前目录下生成子目录:\xxx\yyy C: 在目前目录下生成文件5.以下不是 java 的输入输出流的是(A: 文本流B: 字节流C: 字符流D:文件流B: 生成目录:e:\xxx\yyy D: 以上说法都不对)3.凡是从中央办理器或许是内存流向外面设施的数据流称为(C)A:文件流B:字符流C:输入流D:输出流4.以下属于文件输入输出类的是()A:FileInputStream 和 FileOutputStreamB:BufferInputStream 和 BufferOutputStreamC:PipedInputStream和 PipedOutputStreamD.以上都是5.以下表达中,错误的选项是()A: File 类能够储存文件C: File 类能够成立文件B: FileD: File类能够读写文件类能够获取文件目录信息6.以下表达中,正确的选项是 ( )A: Reader是一个读取字符文件的接口B: Reader是读取数据文件的抽象类C:Reader是一个读取字符文件的抽象类 D: Reader是读取字节文件的一般类7.字符输出流类都是 ( )抽象类的子类A: FilterWriter B: FileWrite C: Writer D:OutputStreamWrite 8.下边对于 FileInputStream 种类说法正确的选项是():A: 创立 FileInputStream 对象是为了读取硬盘上的文件B: 创立 FileInputStream 对象时,假如硬盘上对应的文件不存在,则抛出异样C:利用 FileInputStream 对象能够创立文件D:以上说法都不对二、简答题:1.简述什么是流2.简述 Java IO 流层次结构3.Java中的 IO 流桥接器类有哪些4.使用字符流的优势是什么5.简述对象的序列化与反序列化6.要想从某个文件中获取一个字符输出流,则起码有以下三种方式分别是:利用 FileWriter 类、利用 PrintWriter 类、利用 FileOutputStream 类,并经过OutputStreamWriter 类获取 Writer,请简述这三种方式获取Writer 的差别。
IO流面试题
IO流面试题java基础面试题(10)1.什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别答案Bit最小的二进制单位,是计算机的操作部分取值0或者1Byte是计算机操作数据的最小单位由8位bit组成取值(-128-127)Char是用户的可读写的最小单位,在Java里面由16位bit组成取值(0-65535)Bit 是最小单位计算机只能认识0或者18个字节是给计算机看的字符是看到的东西一个字符=二个字节2.什么是流,按照传输的单位,分成哪两种流,并且他们的父类叫什么流是指数据的传输答案字节流,字符流字节流:InputStream OutputStream字符流:Reader Writer3.流按照传输的方向可以分为哪两种,分别举例说明答案输入输出相对于程序输入流InputStream,输出流OutputStream4.按照实现功能分为哪两种,分别举例说明答案节点流,处理流节点流:OutputStream处理流:OutputStreamWriter5.BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法答案属于处理流中的缓冲流,可以将读取的内容存在内存里面,有readLine()方法6.什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征答案节点流直接与数据源相连,用于输入或者输出处理流:在节点流的基础上对之进行加工,进行一些功能的扩展处理流的构造器必须要传入节点流的子类7.如果我要对字节流进行大量的从硬盘读取,要用那个流,为什么答案BufferedInputStream 使用缓冲流能够减少对硬盘的损伤8.如果我要打印出不同类型的数据到数据源,那么最适合的流是那个流,为什么答案Printwriter 可以打印各种数据类型9.怎么样把我们控制台的输出改成输出到一个文件里面,这个技术叫什么答案SetOut(printWriter,printStream)重定向11.怎么样把输出字节流转换成输出字符流,说出它的步骤答案使用转换处理流OutputStreamWriter 可以将字节流转为字符流New OutputStreamWriter(new FileOutputStream(File file));12.把包括基本类型在内的数据和字符串按顺序输出到数据源,或者按照顺序从数据源读入,一般用哪两个流答案DataInputStream DataOutputStream13.把一个对象写入数据源或者从一个数据源读出来,用哪两个流答案ObjectInputStream ObjectOutputStream14.什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作答案对象序列化,将对象以二进制的形式保存在硬盘上反序列化;将二进制的文件转化为对象读取实现serializable接口不想让字段放在硬盘上就加transient15.如果在对象序列化的时候不想给一个字段的数据保存在硬盘上面,采用那个关键字?答案transient关键字16.在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用答案是版本号,要保持版本号的一致来进行序列化为了防止序列化出错17.InputStream里的read()返回的是什么,read(byte[] data)是什么意思,返回的是什么值答案返回的是所读取的字节的int型(范围0-255)read(byte [ ] data)将读取的字节储存在这个数组返回的就是传入数组参数个数Read 字节读取字节字符读取字符18.OutputStream里面的write()是什么意思,write(byte b[], int off, int len)这个方法里面的三个参数分别是什么意思答案write将指定字节传入数据源Byte b[ ]是byte数组b[off]是传入的第一个字符b[off+len-1]是传入的最后的一个字符len是实际长度19.流一般需要不需要关闭,如果关闭的话在用什么方法,一般要在那个代码块里面关闭比较好,处理流是怎么关闭的,如果有多个流互相调用传入是怎么关闭的?答案流一旦打开就必须关闭,使用close方法放入finally语句块中(finally 语句一定会执行)调用的处理流就关闭处理流多个流互相调用只关闭最外层的流20.Java中的所有的流可以分为几大类,它们的名字是什么,各代表什么答案分为字节输入流 InputStream字节输出流 OutputStream字符输入流 Reader字符输出流 Writer所有流都是这四个流的子类说下常用的io流IconInputStream,OutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedOutputStreamReader,WriterBufferedReader,BufferedWriter21 写一段代码读取一个序列化的对象一般使用哪种Stream?IconA、InputStreamB、FileReaderC、DataInputStreamD、ObjectStream22 io流怎样读取文件的?Icon使用File对象获取文件路径,通过字符流Reader加入文件,使用字符缓存流BufferedReader处理Reader,再定义一个字符串,循环遍历出文件。
Java_IO流详解
Java的核心库java.io提供了全面的IO接口,包括:文件读写、标准设备输出等。
Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
在项目开发中,IO是非常基础的部分,在面试当中经常出现。
对于初学者而言,IO部分是容易忽略的内容,求职者一定要掌握该知识点。
根据面试题详解IO流。
10.3.1 了解Java的IO类面试例题28:下面关于System.out的说法哪个正确?请选择正确的答案。
(a)System.out是1个PrintStream。
(b)System.out是1个OutputStream。
(c)System.out是1个FilterOutputStream。
(d)System.out是1个PrintStream。
(e)System.out在异常时,将抛出IOException。
考点:考查求职者对Java语言的IO处理的掌握。
出现频率:★★★★解析IO(Input/Output)是计算机输入/输出的接口。
Java的核心库java.io提供了全面的IO接口,包括文件读写、标准设备输出等。
Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
此外,Java也对块传输提供支持,在核心库java.nio中采用的便是块IO。
注意:流IO的好处是简单易用,缺点是效率较低。
块IO效率很高,但编程比较复杂。
Java的IO模型设计非常优秀,它使用Decorator模式,用户可以动态装配不同功能的Stream,以便获得需要的功能。
例如,需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。
Java的IO体系分Input/Output和Reader/Writer两类,区别在于Reader/Writer在读写文本时能自动转换内码。
基本上,所有的IO类都是配对的,即有XxxInput就有一个对应的XxxOutput。
Java之IO流面试题案例讲解
Java之IO流⾯试题案例讲解⼀、Java中IO流分为⼏种?按照流的流向分,可以分为输⼊流和输出流;按照操作单元分,可以分为字节流和字符流(字节流可以读写任何单位的数据,字符流只可以读写txt数据);按照流的⾓⾊分,可以分为节点流和处理流;⼆、IO中flush()和close()的区别close()⽅法具备刷新功能,在关闭流之前就会先刷新缓冲区,将缓冲区的字节全部刷新到⽂件上,在关闭流。
(close()⽅法包含⼀次flush()⽅法)flush()⽅法可以刷新,并且刷新之后可以继续写,⽽close()⽅法刷新之后就不能继续写了。
三、BIO、NIO、AIO有什么区别?简答:BIO:Block IO 同步阻塞式IO,就是我们平时使⽤的传统IO,特点是模式简单使⽤⽅便,但是并发处理能⼒低;NIO:Non IO 同步⾮阻塞IO,传统IO的升级,客户端与服务端通过Channel(通道)通讯,实现了多路复⽤;AIO:Asynchronous IO 异步⾮阻塞IO,异步IO的操作基于事件和回调机制。
详细回答:BIO (Blocking I/O): 同步阻塞I/O模式,数据的读取写⼊必须阻塞在⼀个线程内等待其完成。
在活动连接数不是特别⾼(⼩于单机1000)的情况下,这种模型是⽐较不错的,可以让每⼀个连接专注于⾃⼰的 I/O 并且编程模型简单,也不⽤过多考虑系统的过载、限流等问题。
线程池本⾝就是⼀个天然的漏⽃,可以缓冲⼀些系统处理不了的连接或请求。
但是,当⾯对⼗万甚⾄百万级连接的时候,传统的 BIO 模型是⽆能为⼒的。
因此,我们需要⼀种更⾼效的 I/O 处理模型来应对更⾼的并发量。
NIO (New I/O): NIO是⼀种同步⾮阻塞的I/O模型,在Java 1.4 中引⼊了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。
NIO中的N可以理解为Non-blocking,不单纯是New。
IO流加集合加强练习题附答案
IO流加集合加强练习题附答案休息⽇补充加强练习题:题⽬⼀: 将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成⼀个,实现需求import java.util.ArrayList;/*题⽬⼀: 将两个集合{“a”,“b”,“c”,“d”,“e”}和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成⼀个,实现需求*/public class Demo10 {public static void main(String[] args) {ArrayList list1= new ArrayList();list1.add("a");list1.add("b");list1.add("c");list1.add("d");list1.add("e");ArrayList list2= new ArrayList();list2.add("d");list2.add("e");list2.add("f");list2.add("g");list2.add("h");myAdd(list1, list2);}private static void myAdd(ArrayList list1, ArrayList list2) {for (String string : list2) {if(!list1.contains(string)){list1.add(string);}}System.out.println(list1);}}题⽬⼆:已知⽂件a.txt⽂件中的内容为“AAbcdea22dferwplkCC321ou1”,请编写程序读取该⽂件内容,要求去掉重复字母(区分⼤⼩写字母)并按照⾃然排序顺序后输出到b.txt⽂件中。
io流练习题
IO流编码练习:这是从键盘读入N行数据,并存到一个.txt文件从2个文件中逐行读入数据,并存到一个.html文件从一个字符串中逐个读入字节,并输出------------------------------------------------------------------------------------------------------------------------选择、填空练习:1. (File 类)以下关于File 类说法正确的是:B CA. 一个File 对象代表了操作系统中的一个文件或者文件夹B. 可以使用File 对象创建和删除一个文件C. 可以使用File 对象创建和删除一个空文件夹D. 当一个File 对象被垃圾回收器回收时,系统上对应的文件或文件夹也被删除2. (File 类)有如下代码:public class TestFile{public static void main(String args[]){File file = new File("chp13/corejava.txt");}}请选择一个正确答案:A. corejava.txt 文件在系统中被创建 <没有创建>B. 在windows 系统上运行出错,因为路径分隔符不正确C. corejava.txt 文件在系统中没有被创建D. 如果corejava.txt 文件已存在,则抛出一个异常3. (File 类)将下列代码补充完整class TestMyFile{public static void main(String args[]) throws Exception{File file;//创建一个File 对象表示当前目录下的"hello.txt"文件file = new File("hello.txt");//判断该文件是否存在if(file.exist()){//存在}else{//}//如果该文件存在,则输出该文件的完整路径if(file.exist()) System.out.println( file.getAbsolutePath() );//输出绝对路径}}4. (流的分类)对于FileInputStream 来说,从方向上来分,它是___输入___流,从数据单位上分,它是___字节___流,从功能上分,它是_____处理_______流。
java基础IO流综合加习题
java基础IO流综合加习题1. IO流初学者在学习时都有⼀点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助⼤家2. IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了. 1*字节流有:字节输⼊流(FileInputStream),字节输出流(FileOutputStream). 2*字符流有:字符输⼊流(FileReader),当让也有字符输出流(FileWriter); 字节流>>字节输⼊流,⽆⾮就是读取⽂件,初学者可以这么认为,把⽂档的读取出来放在缓冲区⾥(假设有这个缓冲区) >>字节输出流,也就是从这个假设的缓冲区⾥把读取出来 字符流>>也是⼀个道理.不过字符流只可以操作纯⽂本⽂件,他被开发出来就是⽤来操作⽂本⽂件的,什么是纯⽂本⽂件呢?? 纯⽂本⽂件也就是可以⽤记事本打开的⽂件. 后期,我们⽤到字符流的地⽅,⽆⾮就是操作这些纯⽂本⽂件,读取⽂件类容,在控制台打印啊,或者⼿写⼀个字符串录⼊到⽂档中等; ⼀:通过习题我们来认识字节流: 今天就和⼤家分享⼀下字节流拷贝⽂件.将会⽤上java基础阶段字节流的所有⽅法 /* *键盘输⼊⼀个⽂件夹地址,将其中的⽂件拷贝到另⼀个⽂件夹下.只拷贝.java⽂件 *分析:1.拿到这个题,我们还是⼤问题变成⼩问题解决 * (1)键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径>>我们可以把输⼊的字符串封装到File中⽤exists()判断是否存在返回值boolean类型 * (2)拿到正确的⽂件夹地址.我们开始选择⽤什么流拷贝呢,刚才我也说了字符流适合操作纯⽂本⽂件,所以我们遇到⾮纯⽂本的适合直接选择字节流 * (2_1)有⼈会问,那缓冲流呢??别急,其实缓冲流是服务字节流,字符流的,你可以认为他就⼀个8缸的汽车发动机,让汽车变飞机的快感,说道这⾥你也应该明⽩ * 缓冲流是⼲嘛的吧,也就是在字节字符流读取写⼊⽂件的时候速度加快⽤的,其实底层是⼀个缓冲区,8*1024个字节. * (3)拷贝⽂件夹的时候,⽂件夹中不可能只有⽂件也有⼦⽂件夹,我们这⾥要⽤到递归,天哪,好⿇烦啊,⼀会我们做代码你会发现,其实也就那样 * (4)那⽂件夹中⼜有⽂件夹⼜有⽂件,那我们怎么分辨呢? File给我提供了判断的⽅法:isFile()判断⽂件.isDirectory()判断⽂件夹 * (5)那获取到他们要讲他们先放在那⾥呢?把这些⽂件夹和⽂件放在数组⾥?可是没有这个⽅法啊,这个File给我提供了专门的数组File[] */ 来吧>开始做题 第⼀步:键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径private static File getScanner() { //键盘输⼊Scanner sc = new Scanner(System.in);System.out.println("请输⼊⽂件夹的路径:");while(true){String string = sc.nextLine(); //封装键盘输⼊的⽂件地址File file = new File(string); //判断⽂件夹地址是否存在if(!file.exists()){System.out.println("你输⼊的⽂件路径不存在,请重新输⼊:"); //判断是否为⽂件地址}else if(file.isFile()){System.out.println("你输⼊的是⽂件,不是⽂件夹,请重新输⼊:");}else{ //最后返回⽂件夹地址return file;}}} 第⼆步:拷贝private static void copy(File src, File dest) throws IOException {//拿到刚才输⼊的两个⽂件夹地址源⽂件地址为src 要接收的⽂件夹的地址为dest//把源⽂件夹中的⽂件,字⽂件夹存放到File数组中src.listFiles();⽅法获取File[] files = src.listFiles();//判断数组是否为空if(files!=null){//遍历数组for (File file : files) {//如果是⽂件并且以java结尾 geName()是拿到⽂件夹或者⽂件的名字字符串if(file.isFile() && file.getName().endsWith(".java")){//符合条件的复制//缓冲流来了啊记得加速的后⾯跟上我们的字节流,别装上了发动机不要车了啊//字节输⼊流对于初学者来说:可以认为读取⽂件到缓冲区BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));//字节输出流把缓冲区的内容拿出来给另外⼀个对象这⾥我们讲⼀下为什么在new File(这⾥存放的是⽂件地址) // 要接收的⽂件夹的地址为dest 加上⽂件的地址// E:\\dest \\xxx.java 拼接成⼀个完整的⽂件地址BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dest,file.getName())));//这⾥建⼀个字节数组其实也是让⽂件拷贝的更加快⼀点byte[] by = new byte[1024*8];//索引拷贝结束了,没有了数组就返回-1;int len=0;while((len=bis.read(by))!=-1){//往⾥⾯写bos.write(by, 0, len);}//关流bos.close();bis.close();}else if(file.isDirectory()){//建⽴⼀个remove()⽅法判读⽂件夹中可包含java⽂件不包含⽂件夹不复制过来if(remove(file)){File newfile = new File(dest,file.getName());if(!newfile.exists()){//建⽴⽂件夹⽂件夹中的⽂件夹newfile.mkdirs();}copy(file, newfile);}}}}}private static boolean remove(File file) {File[] files = file.listFiles();//先判断⽂件夹是否为空为空返回falseif(files!=null){for (File file2 : files) {//底层⽂件夹中含有符合条件的⽂件返回trueif(file2.isFile() && file2.getName().endsWith(".java")){return true;//判断是否是⽂件夹 //底层是否有java⽂件}else if(file2.isDirectory() && remove(file2)){return true;}}}return false;}上⾯的代码可能⼀时理解起来⽐较难消化,时间原因,下次我更新⼀个⽐较详细的第三步main()⽅法public static void main(String[] args) throws IOException {File src = getScanner();File dest = getScanner();copy(src,dest);}字符流>>题⽬/** ⽂档中第⼀⾏与最后⼀⾏交换* 第⼆⾏与倒数第⼆⾏交换**/public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new FileReader("abc\\b.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("abc\\c.txt"));ArrayList<String> list = new ArrayList<>(); //字节流我们说了⽤len!=-1做索引 //⽂档有⼀个⽅法可以⼀⾏⼀⾏的读取,当然可以想在字节流那样读取String line=null;while((line=br.readLine())!=null){list.add(line);}br.close();//换⽂档中第⼀⾏与最后⼀⾏交换for (int i = 0; i<list.size()/2 ;i++) {String string = list.get(i); //只需要交换集合长度/2次list.set(i, list.get(list.size()-1-i));list.set(list.size()-1-i, string);}//遍历并且把字符串写到⽂件中for (String string : list) {bw.write(string);bw.newLine();} //关流bw.close();}今天就说这么多了,回头看我⾃⼰写的........我发初学IO的应该不知道我在说啥.下次⼀定来⼀个详细的,说真的IO流要细说,有的说的,不过⼤家记住IO在初级阶段⽆⾮就是操作⽂件夹⽂件,拷贝删除,写,读.字符流只读只写拷贝⾃⼰流,不要忘记缓冲流这个加速器.谢谢⼤家。
Java_IO知识测试1
1.下列叙述中,正确的是 ( C)A.Reader 是一个读取文本文件的接口B.B. Reader 是读取二进制数据文件的抽象类C. Reader 是一个读取文本文件的抽象类D. Reader 是读取二进制数据文件的一般类2. 下面关于 IO 流的说法正确的是( ABC )A.IO 流可以分为字节流和字符流B. FileReader 和 FileWriter 是专门用于读取和写入文本文件的C. 顶层类有 InputStream 和 OutputStreamD. 顶层类有 Reader 和 Writer,他们都是接口3.FileReader 类描述正确的是( B )A. 字节输入流B. 字符输入流C. 打印流D. 序列化流4.下列关键字能和 try 一起使用的有( CD )A.finalB. finalizeC. finallyD. catch5.具有 readLine()方法的类是( DA.FileWriterB. InputStreamReaderC. FileReaderD. BufferedReader6. 关于 newLine()方法描述错误的是( C )A.newLine()方法写入换行B.B. newLine()方法会根据不同操作系统自动选择使用相应的换行C. newLine()方法是 FileWiter 类的方法D. newLine()方法是 BufferedWriter 类的方法7.实现下列哪个接口,可以启用序列化功能( C )A. Runnable 接口B. Comparable 接口C. Serializable 接口D. Comparator 接口8.以下关于 java 异常说法不正确的是( D )。
A.Throwable 类是 Java 语言中 Error 类和 Exception 类的父类。
B. 当异常对象是 Exception 类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过 try…catch…finally 处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
狂翔IT工作室IO流章节题目一.选择题1.java语言提供处理不同类型流的类的包是(D)a)java.sql b) java.util c) java.math d) java.io2.不属于java.io包中的接口的一项是(c)a)DataInput b) DataOutput c) DataInputStream d) ObjectInput3.java.io包中提供的用于筛选文件名的接口是(d)a)DataInput b) DataOutputStream c)RandomAccessFile d) FileNameFilter4.下列中,哪一个是filterInputStream类构造方法的有效参数ca)无参数b)OutputStream对象c) InputStream对象d)RandomAccessFile对象5. ByteArrayOutputStream将下列哪一项作为输出流 ca) 字符b)字节c)字节数组D)对象6. 下列流中哪一个使用了缓冲区技术AA.BuffereOutputStream B. FileInputStreamC. DataOutputStreamD.FileReader7. 下列哪个包中含有压缩文件输入流ZipInputStream类BA.java.ioB. java.util.zipC.java.util.jarD.java.awt8. 要在磁盘上创建一个文件,可以使用哪些类的实例A.FileB.FileOutputStreamC.RandomAccessFileD.以上都对9.下列字节输入流中,哪一个不能够被实例化BA.FileInputStreamB.FilterInputStreamC.ByteArrayInputStreamD.ObjectInputStream10. 能对读入字节数据进行java基本数据类型判断过滤的类是(C)A. PrintStreamB.DataOutputStreamC.DataInputStreamD.BuffereInputStream11. 使用下列哪一个类可以实现在文件的任意一个位置读写一个记录A.RandomAccessFileB.FileReaderC.FileWriterD.FileInputStream12.通常情况下,下列哪一个类的对象可以作为BufferedReader类的构造函数的参数A.InputStreamReaderB.PrintStreamC.OutputStreamReaderD.PrintWriter13. 若要创建一个新的含有父目录的目录,应该使用下列哪一个类的实例A.RandomAccessFileB.FileOutputStreamC.FileD.以上都对14. 流的概念是由以下哪个语言最先引的A.CB.C++C.JavaD.Basic15. 下列哪一个不属于计算机常用的外部设备A.显示器B.网络C.内存D.键盘16. 与InputStream流相对应的Java系统的标准输入对象是A.System.inB.System.outC.System.errD.System.exit()17. 下列File类的方法中,哪一个用于返回文件的相对的文件名A.getCanonicalPath()B.getAbsolutePath()C.getCanonicalFile()D.getAbsoluteFile()18. 下列哪个不属于j2sdk1.4 提供的新I/O功能A.内存映射B.文件锁定C.字符及编码D.阻塞I/O19.下列选项中,哪一个属于输出流A.从打印机流向控制器的数据流B.从键盘流向内存的数据流C.从内在流向控制器的数据流D.从内存流向网络的数据流20.FileOutputStream类的父类是()A.FileB.FileOutputC.OutputStreamD.InputStream 二.填空题1. Java的I/O流包括字节流、字符流、文件流、对象流和管道流2. 按照流的方向来分,I/O流包括输入和输出流3. 流是一个流动的数据从流向4. FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与InputStreamReader 和BufferedReader 一起5. 向DataOutputStream对象dos 的当前集团处写入一个保存在变量f中的浮点数的语句是dos.writeDouble(f)6. java通过过滤流对I/O访问提供同步处理机制7. FileChannel类为磁盘文件映射入内存提供了一个通道8. 输入输出在计算机中有两个主要作用:采集数据和提供数据处理结果。
9. ByteArrayInputStream以字节数组作为输入流。
10PrintStream类是字节输出流特有的类,实现了将java基本数据类型转换为字符串表示11. BufferedInputStream类是FilterInputStream 类的子类。
12.在Java.io中,可以直接访问内存的类有ByteArrayOutputStream 、ByteArrayInputStream和StringBufferInputStream13. 进行字节输入流的数据来自二进制数文件的时候,FileInputStream 对象的构造方法的参数是该二进制文件14. 流在传输过程中的串行的15. 在java语言中,实现多线程之间通信的流是管道流16. 在数据传输过程中,对数据进行某种类型的加工处理,这一过程称做过滤17. StringReader类可以将一个String 对象作为一个字符输入流使用18. 向文件对象写入字节数据应该使用FileInputStream 类,而向一个文件里写入文本应该使用DataInputStream 类19. InputStreamReader类是以字节输入流作为数据源的字符输入流。
20. Java.io包中同时兼有输入输出类是RandomAccessFile 。
三.问答题1.字符类输入流有哪些答:字符类输入流都继承自Reader类,实现从数据源读取Unicode码序列的操作(1)FileReader类继承自InputStreamReader类,用于读取Unicode码序列的操作。
(2)BufferedReader类继承自Reader类,它使用缓存技术,提高了字符传输的效率(3)InputStreamReader类和BufferedReader类都继承自Reader类(4)Reader类包含的方法有:read(),skip(),mardSupported(),mark(),reset()等(5)InputStreamReader类包含的方法有:getEncoding(),InputStreamReader(),close()等(6)BuffereReader类包含的方法有:readLine(),BufferedReader()等2.字符类输出流有哪些答:字符类输出流继承自Writer类,实现向数据目的地输出Unicode码序列的操作(1)PrintWriter和OutputStreamWriter是Writer的子类(2)PrintWriter类用于输出字符,其方法println()实现向输出流写入字符数据。
(3)OutputStreadWriter类的子类FileWriter,实现向文本文件写入字符数据(4)Writer类包含的方法:writer() flush()等(5)OutputStreamWriter类包含的方法:OutputStreamWriter(),close()等(6)BufferedWriter类包含的方法:newLine(),BufferedWriter()等3.简要说明过滤流答:在Java中,过滤流提供了对I/o的同步处理机制。
java.io包中的FilterInputStream 和FileOutputStream抽象类实现了过滤流(1)使用过滤流之前,需要将该过滤流和一个I/O流相连(2)BufferedInputStream和BufferedStream类分别继承自FilterInputStream和FileOutputStream类,使用缓冲技术,提高了效率。
(3)DataInputStream和DataOutputStream可以用于读写Java语言的基本数据类型,不用做转换4.简要说明管道流答:在JA V A 中,不同的Java程序、线程或化代码段相互之间的数据交换通过管道流实现。
java.io包中2个类:PipedInputStream和PipedOutputStream类实现了管道机制。
5.简要说明文件数据流6.如果要利用read()方法取得输入数据流的下一个字节数据,并希望可以将所取得的数据转存成字符(char)数据类型,应该如何做?7. 字节数据流(Byte Streams)向上继承于哪两个主要的抽象类?8. 什么是格式化输入输出数据流?在java中哪两个类属于格式化输入输出数据流?9. 何谓管理(pipe)处理?Java中负责管道处理的字节数据流包是什么?10. 在文件数据流包(java.io.File)中主要包含哪些类和接口以供程序开发人员轻松地掌握文件的管理操作?。