第九次作业 I/O(输入/输出)

选择题

1、下列File类的构造方法格式错误的是(A)
  •  A、File(Stringparent,Filechild)
  •  B、File(Stringparent,Stringchild)
  •  C、File(Stringpathname)
  •  D、File(Fileparent,Stringchild)

参考答案 :A

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

2、下列选项中,不属于FileReader类的方法的是( C)
  •  A、read()
  •  B、 close()
  •  C、readLine()
  •  D、toString()

参考答案 :C

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

3、以下关于File类的isDirectory ()方法的描述,哪个是正确的(B )
  •  A、判断该File对象所对应的是否是文件。
  •  B、判断该File对象所对应的是否是目录。
  •  C、返回文件的最后修改时间。
  •  D、在当前目录下生成指定的目录。

参考答案 :B

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

4、下列选项中,使用了缓冲区技术的流是(C)
  •  A、DataInputStream 
  • B、 FileOutputStream
  •  C、BufferedInputStream
  •  D、FileReader

参考答案 :C

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

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

 

6、FileWriter类中有很多重载的读取字符的方法,其中read()方法如果读取已到达流的末尾,将返回的值是(B)
  •  A、0
  •  B、-1
  •  C、1
  •  D、无返回值
7、下列OutputStream流方法那个是刷新此输出流并强制写出所有缓冲的输出字节(B)
  •  A、void write(byte[] b)
  •  B、void write(int b)
  •  C、void flush()
  •  D、void close()
8、以下选项中,哪个是FileInputStream的父类(C )
  •  A、File
  •  B、FileOutput
  •  C、OutputStream
  •  D、InputStream
9、假设在E盘下的cn文件夹中有文件abc.txt,则下列代码的运行结果为(A)
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、针对文件的读取,JDK专门提供了FileInputStream。
11、FileOutputStream是操作文件的字节输入流,专门读取文件数据。
  •  
12、BufferedInputStream和BufferdOutputStream都是带缓冲区的字节流。
13、InputStreamReader转化流转换图片时会造成数据的丢失。

参考答案 :

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

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

参考答案 :对

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

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

参考答案 :对

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

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

参考答案 :对

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

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

参考答案 :对

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

填空题

18、java.io包中可以用于从文件中直接读取字符的是File Reader类。
 
19、File类中通过指定一个字符串类型的文件路径来创建一个新的File对象的类是File (String pathname)
 
20、InputStream类中专门用于读取文件中数据的子类是Fileinput Stream

参考答案 :【FileInputStream】

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

 
21、File类的API中,用于判断File对象对应的文件或目录是否存在的方法是exists
 
22、向文件中写入字符需要使用FileWriter类,它是Writer的一个子类。
 
23、File类delete()方法的返回值是布尔类型。(答案写中文)
 
24、字节流缓冲区实际上是一个字节数组。
 
25、java.io.FileOutputStream是Output Stream的子类,它是操作文件的字节输出流。

参考答案 :【OutputStream】

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

 
26、File类的API中,用于返回File对象表示的文件或文件夹的名称的方法是getName()
 
27、IO流通常都是成对出现的,即输入流输出流一起使用。
 
28、Input Stream Reader是Reader的子类,它可以将一个字节输入流转换成字符输入流,方便直接读取字符。
 
29、字符流也有两个抽象的顶级父类,分别是Reader和Writer。
 
30、Output Stream Writer是Writer的子类,它可以将一个字节输出流转换成字符输出流,方便直接写入字符。
 
31、JDK中提供的两个转换流分别是Input Stream Reader和Output Stream Writer
 
32、计算机中,无论是文本、图片、音频还是视频,所有文件都是以二进制形式存在的。
 

简答题

33、编写程序,首先在当前目录下新建文件“reader.txt”并在其中输入字符“itcast”,然后使用FileReader读取文件中的字符并打印。6分
 

我的答案:

参考答案 :

import java.io.*;
public class FileReaderDemo{
 public static void main(String[] args) throws Exception {
  // 创建一个FileReader对象用来读取文件中的字符
  FileReader reader = new FileReader("reader.txt");
  int ch; // 定义一个变量用于记录读取的字符
  while ((ch = reader.read()) != -1) { // 循环判断是否读取到文件的末尾
   System.out.println((char) ch); // 不是字符流末尾就转为字符打印
  }
  reader.close(); // 关闭文件读取流","释放资源
 }
}

答案说明 :

34、编写程序,使用字节缓冲流将src.txt文件中的数据读取并写入到des.txt文件中。使用BufferedInputStream和BufferdOutputStream的构造方法分别接收InputStream和OutputStream类型的参数作为被包装对象,在读写数据时提供缓冲功能。6分
 

我的答案:

参考答案 :

import java.io.*;
public class Example01 {
 public static void main(String[] args) throws Exception {
  // 创建一个带缓冲区的输入流
  BufferedInputStream bis = new BufferedInputStream(
new FileInputStream("src.txt"));
  // 创建一个带缓冲区的输出流
  BufferedOutputStream bos = new BufferedOutputStream(
    new FileOutputStream("des.txt"));
  int len;
  while ((len = bis.read()) != -1) {
   bos.write(len);
  }
  bis.close();
  bos.close();
 }
}

答案说明 :

posted @ 2022-06-20 09:39  元囮  阅读(767)  评论(0编辑  收藏  举报