第七章 IO 题库

本文详细介绍了Java中File类的构造方法、方法,如isDirectory()、delete()等,以及FileInputStream、FileOutputStream、BufferedInputStream和BufferedOutputStream等字节流和字符流的基本操作,包括文件的读写、拷贝、删除等常见操作。同时,提到了转换流的角色和缓冲区技术在提高效率方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下列File类的构造方法格式错误的是()

A、 File(Stringparent,Filechild)

B、 File(Stringparent,Stringchild)

C、 File(Stringpathname)

D、 File(Fileparent,Stringchild)

答案: A
解析:查看API可知A选项的格式错误,不能通过String类型父路径和File类型子路径构建一个完整的文件路径实例。

2、以下关于File类的isDirectory ()方法的描述,哪个是正确的( )

A、 判断该File对象所对应的是否是文件。

B、 判断该File对象所对应的是否是目录。

C、 返回文件的最后修改时间。

D、 在当前目录下生成指定的目录。

答案: B
解析:isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。

3、下列OutputStream流方法那个是刷新此输出流并强制写出所有缓冲的输出字节()

A、 void write(byte[] b)

B、 void write(int b)

C、 void flush()

D、 void close()

答案: C

4、以下选项中,哪个是FileInputStream的父类( )

A、 File

B、 FileOutput

C、 OutputStream

D、 InputStream

答案: D

5、请将下列四个步骤进行排列,完成文件的赋值操作( )

A、 将字节流输入流和源文件相关联,输出流和目标文件相关联。

B、 明确源文件和目标文件。

C、 使用输入流的读取方法读取文件,并将字节写入到目标文件中。

D、 关闭资源。

E、 ①②③④

F、 ②①③④

G、 ②③①④

H、 ①③②④

答案: B

6、下列选项中,使用了缓冲区技术的流是()

A、 DataInputStream

B、 FileOutputStream

C、 BufferedInputStream

D、 FileReader

答案: C
解析:BufferedInputStream带缓冲的字节输入流,使用了缓冲区技术。 FileOutputStream、DataInputStream和 FileReader 都没有使用缓冲区技术。

7、下列选项中,不属于FileReader类的方法的是( )

A、 read()

B、 close()

C、 readLine()

D、 toString()

答案: C
解析:FileReader类中的read()和close()方法继承自 InputStreamReader,toString()继承自Object类。

8、FileWriter类中有很多重载的读取字符的方法,其中read()方法如果读取已到达流的末尾,将返回的值是()

A、 0

B、 -1

C、 1

D、 无返回值

答案: B

9、假设在E盘下的cn文件夹中有文件abc.txt,则下列代码的运行结果为()

class Example {

   public static void main(String[] args) {  

       File file = new File("E:\\cn"); // 这是一个代表目录的File对象

       if (file.exists()) {  

           System.out.println(file.delete());  

       } 

   }

}

A、

false文件夹删除不成功,abc.txt删除不成功

B、

false文件夹删除不成功,abc.txt删除成功

C、

true文件夹删除成功

D、

true文件夹删除不成功,abc.txt删除成功

答案: A
解析:

运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

10、下列选项中,关于File类中的list ()方法说法正确的是()

A、 该方法接收一个FilenameFilter类型的参数

B、 在调用list()方法时,需要实现文件过滤器

C、 该方法返回一个String类型的数组

D、 该方法返回一个File类型的数组

答案: ABC
解析:list ()方法返回一个String类型的数组。

11、关于删除文件及目录的操作,下列说法中正确的是( )

A、 可以使用delete()方法直接删除带文件的目录。

B、 使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。

C、 可以通过递归的方式将整个目录以及其中的文件全部删除。

D、 Java中删除目录或文件是无法恢复的。

答案: BCD

12、下列关于IO流的描述中,正确的有哪些()

A、 按照操作数据的不同,可以分为字节流和字符流。

B、 按照数据传输方向的不同又可分为输入流和输出流。

C、 字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示。

D、 符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

答案: ABCD
解析:IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据。在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

13、下列关于InputStream流方法的描述正确的是()

A、 int read():从输入流读取一个8位的字节,把它转换为计算机字符并返回

B、 int read(byte[] b):从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取字节的数目

C、 int read(byte[] b,int off,int len):从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目

D、 void close():关闭此输入流并释放与该流关联的所有系统资源

答案: BCD

14、以下哪些属于OutputStream类的方法()

A、 write(byte)

B、 flush()

C、 close()

D、 available()

答案: ABC

15、使用IO流拷贝文件时,下列哪些路径可以被正确解析()

A、 "f:\\Kugou\\阿杜-天黑.mp3"

B、 "f:/Kugou/阿杜-天黑.mp3"

C、 "F:\\Kugou\\阿杜-天黑.mp3"

D、 "F:\\\Kugou\\\阿杜-天黑.mp3"

答案: ABC
解析:文件路径盘符不区分大小写 ,这是因为在Windows中的目录符号为反斜线“\”,但反斜线“\”在Java中是特殊字符,表示转义符,所以在使用反斜线“\”时,前面应该再添加一个反斜线,即为“\\”。除此之外,目录符号也可以用正斜线“/”来表示,如:“D:/file/a.txt”。

16、下列有关字节缓冲流的描述正确的是()

A、 字节缓冲流能有效的提高数据的读写效率

B、 字节缓冲流使用了装饰设计模式

C、 应用程序是通过缓冲流来完成数据读写的,而缓冲流又是通过底层被包装的字节流与设备进行关联的

D、 java.io包中提供的字节缓冲流包括BufferedInputStream和BufferdOutputStream

答案: ABCD
解析:java.io包中提供的字节缓冲流包括BufferedInputStream和BufferdOutputStream。字节缓冲流使用了装饰设计模式。应用程序是通过缓冲流来完成数据读写的,而缓冲流又是通过底层被包装的字节流与设备进行关联的。字节缓冲流对数据进行了缓冲,从而有效的提高数据的读写效率。

17、以下哪些属于Writer类的子类()

A、 BufferedWriter

B、 ByteArrayWriter

C、 CharArrayWriter

D、 FileWriter

答案: ACD

18、下面关于FileWriter的说法正确的是()

A、 使用FileWriter时,如果指定的文件不存在,就会先创建文件,再写入数

B、 使用FileWriter时,如果文件存在,则会首先清空文件中的内容,再进行写入

C、 使用FileWriter时,可以使用nextLine()方法进行换行写入

D、 写数据时,向文件中追加内容,可以使用FileWriter(String fileName, boolean append)构造方法

答案: ABD

19、下列关于转换流描述正确的有( )

A、 转换流是一种字符流

B、 转换流是一种包装流

C、 转换流不能对图片、音频等数据的读写

D、 转换流可以对图片、音频等数据的读写

答案: ABC

20、下列选项中关于InputStreamReader转换流描述正确的是( )

A、 InputStreamReader是Reader类的子类。

B、 InputStreamReader的作用是将接收的字节流转换为字符流。

C、 InputStreamReader类具有一次读取一行数据的功能。

D、 可以使用InputStreamReader转化流转换图片文件。

答案: AB

21、File类可以用于封装一个绝对路径或相对路径。

答案: 正确
解析:File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如:src\Hello.java。

22、File对象的list()方法返回一个字符串数组。

答案: 正确
解析:File对象的list()方法列出指定目录的全部内容,只是列出了名称。

23、针对文件的读取,JDK专门提供了FileInputStream。

答案: 正确

24、FileOutputStream是操作文件的字节输入流,专门读取文件数据。

答案: 错误

25、在java语言中使用IO流进行文件的拷贝时可能会出现IO异常,必须对异常进行try{}catch(){}处理或者抛出异常。

答案: 正确
解析:对文件的操作,经常会遇到各种IO异常,例如FileNotFoundException、EOFException等。

26、BufferedInputStream和BufferdOutputStream都是带缓冲区的字节流。

答案: 正确

27、FileReader字符输入流可以用于从文件中直接读取字符。

答案: 正确
解析:从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

28、InputStreamReader转化流转换图片时会造成数据的丢失。

答案: 正确
解析:InputStreamReader转化流对二进制文本进行转换操作时会造成数据的丢失。

29、File类的API中,用于返回File对象表示的文件或文件夹的名称的方法是【】。

答案: getName();

30、File类的API中,用于判断File对象对应的文件或目录是否存在的方法是【】。

答案: exists();

31、File类中通过指定一个字符串类型的文件路径来创建一个新的File对象的类是【】。

答案: File(String pathname);

32、阅读下面的程序

public class Example {

 public static void main(String[] args) {

      // 创建一个代表目录的File对象

  File file = new File("E:\\cn\\itcast");

     // 调用FileDir删除方法

  fileDir(file);

 }

 public static void fileDir(File dir) {

     // 获得表示目录下所有文件的数组

  File[] files = dir.listFiles();

     // 遍历所有的子目录和文件

  for (File file : files) {  

   if (file.isDirectory()) {

          // 如果是目录,递归调用

     【】(file);   

   }

          // 输出文件的绝对路径

   System.out.println(file.getAbsolutePath());

  }

}

}

请填写空白处的代码,使程序打印出itcast文件夹以及子文件夹中所有文件的绝对路径。

答案:

fileDir


解析:定义了一个静态方法fileDir (),方法接收一个表示目录的File对象。在方法中,首先通过调用listFiles()方法把该目录下所有的子目录和文件存到一个File类型的数组files中,接着遍历数组files,对当前遍历的File对象进行判断,如果是目录就重新调用fileDir ()方法进行递归,如果是文件就直接打印输出文件的路径,这样该目录下的所有文件就被成功遍历出来了。

33、File类delete()方法的返回值是【】类型。(答案写中文)

答案: 布尔;

34、计算机中,无论是文本、图片、音频还是视频,所有文件都是以【】形式存在的。

答案: 二进制;

35、字节流是程序中最常用的流,根据数据的传输方向可将其分为字节【】和【】。

答案: 输入流;输出流;

36、InputStream类中专门用于读取文件中数据的子类是【】。

答案: FileInputStream;
解析:FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据。

37、java.io.FileOutputStream是【】的子类,它是操作文件的字节输出流。

答案: OutputStream;
解析:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流,它是OutputStream类的子类。

38、IO流通常都是成对出现的,即【】流和【】流一起使用。

答案: 输入;输出;

39、字节流缓冲区实际上是一个【】数组。

答案: 字节;

40、字符流也有两个抽象的顶级父类,分别是Reader和【】。

答案: Writer;

41、java.io包中可以用于从文件中直接读取字符的是【】类。

答案: FileReader;

42、向文件中写入字符需要使用【】类,它是Writer的一个子类。

答案: FileWriter;

43、JDK中提供的两个转换流分别是【】和【】。

答案: InputStreamReader;OutputStreamWriter;

44、【】是Reader的子类,它可以将一个字节输入流转换成字符输入流,方便直接读取字符。

答案: InputStreamReader;

45、【】是Writer的子类,它可以将一个字节输出流转换成字符输出流,方便直接写入字符。

答案: OutputStreamWriter;

46、
BufferedReader和BufferedWriter是具有缓冲功能的流,使用它们可以提高读写效率。

答案: 正确

47、
字符流也有两个抽象的顶级父类,分别是Reader和【】。

答案:

Writer;writer

48、
File类delete()方法的返回值是【】类型。(答案写中文)

答案:

布尔


解析:File类delete()方法的返回值是布尔类型。

49、
下列选项中,关于File类中的list ()方法说法正确的是(    )

A、 该方法接收一个FilenameFilter类型的参数

B、 在调用list()方法时,需要实现文件过滤器

C、 该方法返回一个String类型的数组

D、 该方法返回一个File类型的数组

答案: ABC
解析:list ()方法返回一个String类型的数组。

50、
关于删除文件及目录的操作,下列说法中正确的是(  )

A、 可以使用delete()方法直接删除带文件的目录。

B、 使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。

C、 可以通过递归的方式将整个目录以及其中的文件全部删除。

D、 Java中删除目录或文件是无法恢复的。

答案: BCD
解析:使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除
可以通过递归的方式将整个目录以及其中的文件全部删除。
Java中删除目录或文件是无法恢复的。

51、
如果File对象表示的目录下有文件或者子目录,调用delete()方法可以将其直接删除。

答案: 错误
解析:使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。

52、
在操作文件时,如果需要删除整个目录,只需File类的delete()方法直接删除目录即可。

答案: 错误
解析:File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

53、
下列说法中,关于在Java中删除目录说法错误的是(   )

A、 在Java中删除目录是从虚拟机直接删除不走回收站,文件将无法恢复

B、 File类的delete()方法不允许对还有子文件的目录直接删除

C、 delete()方法可以删除一个指定的文件

D、 在删除目录时,先删除这个目录再删除该目录下的所有文件

答案: D
解析:在删除目录时,删除完一个目录里的所有文件后,才能删除这个目录。

54、
File类中的list()方法用于得到所有子目录下的File类型对象。

答案: 错误
解析:list()方法只能遍历目录下文件的文件名,不能得到子目录下的File类型对象。

55、
File类中用于删除文件或整个目录的方法是【】。

答案:

delete()

56、
假设在E盘下的cn文件夹中有文件abc.txt,则下列代码的运行结果为(    )
class Example {
 public static void main(String[] args) {
  File file = new File("E:\\cn"); // 这是一个代表目录的File对象
  if (file.exists()) {
   System.out.println(file.delete());
  }
 }
}

A、 false文件夹删除不成功,abc.txt删除不成功

B、 false文件夹删除不成功,abc.txt删除成功

C、 true文件夹删除成功

D、 true文件夹删除不成功,abc.txt删除成功

答案: A
解析:运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

57、
请将下列四个步骤进行排列,完成文件的赋值操作(   )
① 将字节流输入流和源文件相关联,输出流和目标文件相关联。
② 明确源文件和目标文件。
③ 使用输入流的读取方法读取文件,并将字节写入到目标文件中。
④ 关闭资源。

A、 ①②③④

B、 ②①③④

C、 ②③①④

D、 ①③②④

答案: B
解析:文件的赋值操作步骤:
1、明确源文件和目标文件
2、将字节流输入流和源文件相关联,输出流和目标文件相关联
3、使用输入流的读取方法读取文件,并将字节写入到目标文件中

58、
字节流的缓冲区就是使用一个字节数组存放多个字节进行读写操作。

答案: 正确

59、
以下选项中,哪个是FileInputStream的父类(  )

A、 File

B、 FileOutput

C、 OutputStream

D、

  • InputStream

答案: D
解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。

60、阅读下列代码
import java.io.*;
public class Example{
 public static void main(String[] args) throws Exception {
  // 创建一个带缓冲区的输入流
  BufferedInputStream bis = new BufferedInputStream(new ________(
    "src.txt"));
  // 创建一个带缓冲区的输出流
  BufferedOutputStream bos = new BufferedOutputStream(
    new FileOutputStream("des.txt"));
  int len;
  while ((len = bis.read()) != -1) {
   bos.write(len);
  }
  bis.close();
  bos.close();
 }
}
请说出程序中,下划线位置的答案(    )

A、 FileInputStream

B、 File

C、 InputStream

D、 以上答案都不正确

答案: A
解析:BufferedInputStream需要接受一个InputStream对象,但是InputStream是抽象类,必须传入其实例化对象,FileInputStream是其实例化子类。所以这里选A。

61、字节流只能用来读写二进制文件。

答案: 错误
解析:字节流不仅可以读写二进制文件,还能读写文本文件。

62、
InputStream类中专门用于读取文件中数据的子类是【】。

答案:

FileInputStream


解析:FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据。

63、
字节缓冲流指的是BufferedInputStream和BufferdOutputStream。

答案: 正确

64、FileReader可以用于向文本文件中写入字符流。

答案: 错误
解析:想从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

65、
File类的API中,用于获取File对象表示的文件或文件夹名称的方法是【】。

答案:

getName()


解析:getName()方法用于返回File对象表示的文件或文件夹的名称。

66、转换流实现了字节流和字符流之间的互相转换。

答案: 正确

67、
阅读下列代码
import java.io.*;
public class Example{
public static void main(String[] args) throws Exception {
OutputStream out = new FileOutputStream("itcast.txt ", true);
  String str = "欢迎你!";
  byte[] b = str.getBytes();
  for (int i = 0; i < b.length; i++) {
   out.______(b[i]);
  }
  out.close();
 }
}
请说出下划线上,填写的方法名称(   )

A、 read()

B、 write()

C、 close()

D、 available()

答案: B
解析:write(byte[] b)表示将将 b.length 个字节从指定 byte 数组写入此文件输出流中。

68、File类中以字符串形式返回文件绝对路径的的方法是(  )

A、 getName()

B、 getParent()

C、 getPath()

D、 getAbsolutePath()

答案: D
解析:getPath()表示获取File对象的抽象路径
getName()表示获取File对象的名称
getParent()表示获取File对象的父级目录的路径

69、
File类可以用于封装一个绝对路径或相对路径。

答案: 正确
解析:File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如:src\Hello.java。

70、
下列关于java.io.FileOutputStream的说法错误的是(   )

A、 文件拷贝时,使用输入流读取的文件必须存在。否则抛出java.io.FileNotFoundException。

B、 文件拷贝时,使用输出流进行文件写出的时候,目标文件名称可以与原文件不同名。

C、 使用字节流进行文件的拷贝,文件既可以是文本文件也可以是图片、音频等文件。

D、 使用IO流进行文件拷贝。文件大小不能超过20M,否则内存溢出。

答案: D
解析:只要对文件进行拷贝操作时,字节缓冲区定时刷新就不会出现内存溢出的现象。

71、下面关于字节流缓冲区的描述中,哪些是错误的(  )

A、 字节流缓冲区的大小是1024。

B、 字节流缓冲区的大小是可以自定义设置的。

C、 字节流缓冲区只能用在文件输出流中。

D、 字节流缓冲区只能用在文件输入流中。

答案: ACD
解析:字节流缓冲区的大小是可以自定义设置的;
字节流缓冲区既可以用在文件输出流中,也可以用在文件输入流中。

72、
针对文件的读写,JDK专门提供了两个类,分别是FileInputStream和FileOutputStream。

答案: 正确

73、
阅读下列代码
import java.io.*;
public class Example{
public static void main(String[] args) throws Exception {
 File file = new File("itcast.txt");
 FileInputStream in = new FileInputStream(file);
 // 以下是用缓冲区读写文件
byte[] buff = new byte[1024]; // 定义一个字节数组,作为缓冲区
    int len;
    while ((len = in.______) != -1) { // 判断是否读到文件末尾
   System.out.println(new String(buff,0,len));
  }
  in.close();
 }
}
请说出下划线上,填写的方法名称(   )

A、 read(buff)

B、 read()

C、 write(buff)

D、 write()

答案: A
解析:通过读取字节数组,实现字节流的缓冲区,提高读写效率。

74、
关于FileOutputStream构造方法的说法中,哪些是正确的(  )

A、 FileOutputStream(Filefile)创建一个向指定File对象表示的文件中写入数据的文件输出流。

B、 FileOutputStream(Filefile,booleanappend)创建一个向指定File对象表示的文件中追加写入数据的文件输出流。

C、 FileOutputStream(Stringname)创建一个向具有指定名称的文件中写入数据的输出文件流。

D、 FileOutputStream(Stringname,booleanappend)创建一个向具有指定name的文件中追加写入数据的输出文件流。

答案: ABCD
解析:FileOutputStream(File file)创建一个向指定File对象表示的文件中写入数据的文件输出流。
FileOutputStream(File file, boolean append)创建一个向指定File对象表示的文件中追加写入数据的文件输出流。
FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。
 

75、使用IO流拷贝文件时,下列哪些路径可以被正确解析(   )

A、 "f:\\Kugou\\阿杜-天黑.mp3"。

B、 "f:/Kugou/阿杜-天黑.mp3"。

C、 "F:\\Kugou\\阿杜-天黑.mp3"。

D、 "F:\\\Kugou\\\阿杜-天黑.mp3"。

答案: ABC
解析:文件路径盘符不区分大小写 ,这是因为在Windows中的目录符号为反斜线“\”,但反斜线“\”在Java中是特殊字符,表示转义符,所以在使用反斜线“\”时,前面应该再添加一个反斜线,即为“\\”。除此之外,目录符号也可以用正斜线“

76、
字节流缓冲区实际上是一个【】数组。

答案:

字节

77、
阅读下段代码
import java.io.*;
public class Example{
public static void main(String[] args) throws Exception {
 FileInputStream fis = new FileInputStream("file.txt");
FileOutputStream fos = new FileOutputStream("copy_file.txt");
  int ch = 0;
  while((ch =fis.read())!=-1){
    fos.write(ch);
  }
  fos._______;
  fis.close();
 }
}
请说出下划线上,填写的方法名称(   )

A、 read()

B、 available()

C、 close()

D、 write()

答案: C
解析:使用输入输出流操作文件接受后,需要关闭资源。

78、下面关于字节流缓冲区的说法错误的是( )

A、 使用字节流缓冲区读写文件是一个字节一个字节的读写。

B、 使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据。

C、 使用字节流缓冲区读写文件,可以大大的提高文件的读写操作。

D、 字节流缓冲区就是一块内存,用于存放暂时输入输出的数据。

答案: A
解析:使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据,并保存在字节数组中,然后将字节数组中的数据一次性写入文件。

79、当文件不存在或不可读时,使用FileInputStream读取文件会报下列哪一种错误( )

A、 NullPointerException

B、 NoSuchFieldException

C、 FileNotFoundException

D、 RuntimeException

答案: C
解析:在读取文件数据时,必须保证文件是存在并且可读的,否则会抛出文件找不到的异常FileNotFoundException。

80、
下列选项中关于InputStreamReader转换流描述正确的是(   )

A、 InputStreamReader是Reader类的子类。

B、 InputStreamReader的作用是将接收的字节流转换为字符流。

C、 InputStreamReader类具有一次读取一行数据的功能。

D、 可以使用InputStreamReader转化流转换图片文件。

答案: AB
解析:AB选项皆是InputStreamReader转换流的特性,InputStreamReader不具备一次读取一行数据的功能,BufferedReader高效流才具备这个功能,日常应用中,我们通常会将字符转换流对象进行包装,运用BufferedReader高效流来完成一次读取一行数据的功能

81、Java流被分为字节流、字符流两大流类,两者都作为(   )类的直接子类。

A、 Exception

B、 Object

C、 Throwable

D、 以上都不是

答案: B
解析:InputStream、OutputStream都是直接继承自Object类。

82、InputStreamReader转化流转换图片时会造成数据的丢失。

答案: 正确
解析:InputStreamReader转化流对二进制文本进行转换操作时会造成数据的丢失。

83、
IO流有很多种,按照操作数据的不同,可以分为【】和字符流。

答案:

字节流

84、
在java语言中使用IO流进行文件的拷贝时可能会出现IO异常,必须对异常进行try{}catch(){}处理或者抛出异常。

答案: 正确
解析:对文件的操作,经常会遇到各种IO异常,例如FileNotFoundException、EOFException等。

85、
File类内部封装的路径可以指向一个文件,也可以指向一个目录。

答案: 正确

86、
使用字节流缓冲区读取数据相对一个字节一个字节的读取操作效率更低。

答案: 错误
解析:使用字节流缓冲区读取数据相对一个字节一个字节的读取操作效率更高。

87、
下列关于IO流的描述中,正确的有哪些(  )

A、 按照操作数据的不同,可以分为字节流和字符流。

B、 按照数据传输方向的不同又可分为输入流和输出流。

C、 字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示。

D、 字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

答案: ABCD
解析:IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据。在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

88、
FileOutputStream是操作文件的字节输出流,专门用于把数据写入文件。

答案: 正确

89、
向文件中写入字符需要使用【】类,它是Writer的一个子类。

答案:

FileWriter


解析:如果要向文件中写入字符就需要使用FileWriter类,FileWriter是Writer的一个子类。

90、
FileReader字符输入流可以用于从文件中直接读取字符。

答案: 正确
解析:从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

91、
JDK中提供的两个转换流分别是【】和OutputStreamWriter。

答案:

InputStreamReader


解析:在JDK中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。

92、
FileWriter用于向文件中写入字符,它属于字符输出流。

答案: 正确

93、
文件的拷贝是指读取一个文件中的数据并将这些数据写入到另一个文件中。

答案: 正确

94、
使用FileReader读取reader.txt文本文件中的数据,reader.txt中的内容为:abc
import java.io.*;
public class Example01 {
 public static void main(String[] args) throws Exception {
  FileReader reader = new FileReader("reader.txt");
  int ch; 
  while ((ch = reader.read()) != -1) { 
   System.out.print(ch+" ");
  }
  reader.close(); 
 }
}
运行以上程序的结果是(    )

A、 编译出错

B、 abc

C、 979899

D、 无输出

答案: C
解析:字符输入流的read()方法返回的是int类型的值,如果想获得字符就需要进行强制类型转换,在程序中将变量ch转为char类型再打印。

95、下列选项中,哪个是文本文件读取类(    )

A、 FileReader

B、 FileWriter

C、 BufferReader

D、 BufferWriter

答案: A
解析:FileWriter是输出流,BufferReader和BufferWriter是字节缓冲流,FileReader是可以读取文本文件的内容类。

96、
下列关于java.io.FileOutputStream的说法错误的是( )

A、 java.io.FileOutputStream用来进行文件的写入操作。用它提供的方法可以将指定文件写入本地主机硬盘上。

B、 通过类File的实例和者一个表示文件名称的字符串可以生成文件输出流。在流对象生成的同时文件被打开。但还不能进行文件读写。

C、 java.io.FileOutputStream可以读取字节文件也可以读取字符文件。

D、 java.io.FileOutputStream一次只能读取一个字节的内容。

答案: D
解析:使用FileOutputStream类write(byte[] b)写入文件,可以自定义字节数组的长度。

97、以下关于File类的isDirectory ()方法的描述,哪个是正确的(  )

A、 判断该File对象所对应的是否是文件。

B、 判断该File对象所对应的是否是目录。

C、 返回文件的最后修改时间。

D、 在当前目录下生成指定的目录。

答案: B
解析:isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。

98、下列File类的方法中,可以获得文件对象父路径名的是(    )。

A、 getName()

B、 getParent()

C、 getPath()

D、 getAbsolutePath()

答案: B
解析:getName()获取文件或目录的名称,getParent ()获取文件父路径名,getPath()获取文件名的字符串形式,getAbsolutePath()获取文件的绝对路径。

99、
File对象的list()方法返回一个字符串数组。

答案: 正确
解析:File对象的list()方法列出指定目录的全部内容,只是列出了名称。

100、
阅读下列代码
import java.io.*;
public class Example {
public static void main(String[] args) throws Exception {
 FileInputStream in = new FileInputStream("itcast.txt");
  int b = 0;         
  while (true) {
   b = in.______; 
   if (b == -1) { 
    break;
   }
   System.out.println(b); 
  }
  in.close()
 }
}
请说出下划线上,填写的方法名称(   )

A、 read()

B、 close()

C、 skip()

D、 available()

答案: A
解析:FileInputStream对象通过read()函数读取一个字节。

101、
java.io.FileOutputStream是【】的子类,它是操作文件的字节输出流。

答案:

OutputStream


解析:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流,它是OutputStream类的子类。

102、
默认情况下,使用FileOutputStream写数据时,下列说法中哪些是错误的()

A、 当文件不存在时,会自动创建文件。

B、 当文件不存在时,程序会报错。

C、 当文件存在时,会覆盖原文件。

D、 当文件存在时,会在原文件上追加数据。

答案: BD
解析:默认情况下,使用FileOutputStream写数据时,当文件不存在时,会自动创建文件。
如果希望在已存在的文件内容之后追加新内容,则可使用FileOutputStream的构造函数FileOutputStream(String fileName, boolean append)来创建文件输出流对象,并把append 参数的值设置为true。

103、
IO流通常都是成对出现的,即【】流和输出流一起使用。

答案:

输入


解析:文件的拷贝就需要通过输入流来读取文件中的数据,通过输出流将数据写入文件。

104、
FileWriter类中有很多重载的读取字符的方法,其中read()方法如果读取已到达流的末尾,将返回的值是(      )

A、 0

B、 -1

C、 1

D、 无返回值

答案: B
解析:read()方法用于读取字符,如果已到达流的末尾,则返回 -1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还没有名字哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值