一、单选题
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){}
}
}