本章练习一答案


一、单选题

1.正确答案:C

答案解析:创建File对象时,如果文件不存在,File类可以直接做出判断,不会抛出异常。所以A选项错误。BufferReader、BufferedWrite、FileWrite属于字符流,而FileInputStream流属于字节流,所以BufferedRead流不能指向FileInputStream流,B选项错误。C选项正确。RandomAccessFile流一旦指向文件,不会刷新该文件。所以D选项错误。

2.正确答案:C

答案解析:FileReader属于字符流。所以选择C选项。FileInputStream、FileOutputStream、InputStream属于字节流。

3.正确答案:B

答案解析:略

4.正确答案:B

答案解析:InputStream是表示字节输入流的所有类的超类,Reader是用于读取字符流的抽象类,InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别,它们每次读入的字节数不同,所以B选项正确。InputStream不带有缓冲所以A选项错误。

二、多选题

1. 正确答案:BC

答案解析:FileReader类用于字符文件的读,每次读取一个字符或一个字符数组。FileWriter类用于字符文件的写,每次写入一个字符、一个数组或一个字符串。所以选择B、C选项。

2.正确答案:ACD

答案解析:BufferedReader类是带缓冲的字符流,可用于以文本行为为基本单位进行处理的场合。方法readpne()每次读取一行数据。该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。如果读到流的末尾,该方法返回的结果为null。所以选择ACD选项。

三、简答题

1. FileInputStream按字节读取文件,FileReader按字符读取文件

2.字节流类用来处理字节式输入/输出. 字符流是建立在字节流基础之上的,Java语言内部可将一个字节流按照某种编码规范转换成字符流,这方面的转换是由字节流与字符流转换的桥类InputStreamReader和OutputStreamWriter来完成的。两者都作为Object类的直接子类,基本输入流(InputStream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。

四、编程题

1. import java.io.*;

pubpc class E {

pubpc static void main(String args[ ]) {

  File file=new File("E.java");

  File tempFile=new File("temp.txt");

  try{ FileReader  inOne=new FileReader(file);

    BufferedReader inTwo= new BufferedReader(inOne);

    FileWriter  tofile=new FileWriter(tempFile);

    BufferedWriter out= new BufferedWriter(tofile);

    String s=null;

    int i=0;

    s=inTwo.readpne();

    while(s!=null) {

      i++;

      out.write(i+" "+s);

      out.newpne();

      s=inTwo.readpne();

    }

    inOne.close();

    inTwo.close();

    out.flush();

    out.close();

    tofile.close();

  }

  catch(IOException e){}

 }

}