当前位置:文档之家› 最新第十五章习题※答案

最新第十五章习题※答案

一、填空题1.所有字节流类的基类是_______________、____________(InputStream OutputStream)2.所有字符流类的基类是_______________、____________(Reader Writer)3.InputStream类以__________为信息的基本单位(字节)4.Reader类以____________为信息的基本单位(字符)5.___________类用以处理文件和路径问题(File)6.Java中标准输入输出流对象是:________________、____________、___________(System.in System.out System.err)7.System.in的类型是___________(InputStream)8.System.out的类型是______________(PrinterStream)二、选择题1.以下选项中属于字节流的是(A)A)FileInputSream B)FileWriter C)FileReader D)PrintWriter2.以下选项中不属于File类能够实现的功能的是(D)A)建立文件B)建立目录C)获取文件属性D)读取文件内容3.以下选项中哪个类是所有输入字节流的基类(A)A)InputStream B)OutputStream C)Reader D)Writer4.以下选项中哪个类是所有输出字符流的基类(D)A)InputStream B)OutputStream C)Reader D)Writer5.下列选项中能独立完成外部文件数据读取操作的流类是(B)A)InputStream B)FileInputStream C)FilterInputStream D)DataInputStream6.下列选项中能独立完成外部文件数据读取操作的流类是(B)A)Reader B)FileReader C)BufferedReader D)ReaderInputStream7.在建立FileInputStream流对象时可能会产生下列哪种类型的异常(B)A)ClassNotFoundException B)FileNotFoundExceptionC)RuntimeException D)AWTException8.在使用FileInputStream流对象的read方法读取数据时可能会产生下列哪种类型的异常(D)A)ClassNotFoundException B)FileNotFoundExceptionC)RuntimeException D)IOException三、程序设计题1.编写应用程序,使用System.in.read()方法读取用户从键盘输入的字节数据,回车后,把从键盘输入的数据存放到数组buffer中,并将用户输入的数据通过System.out.print()显示在屏幕上。

import java.io.*;public class Class1{public static void main(String args[]){byte buffer[]=new byte[128];int n;try{n=System.in.read(buffer); //把键盘输入的数据读到数组buffer中,返回实际读取的字节数for(int i=0;i<n;i++)System.out.print((char)buffer[i]);}catch(IOException e){ System.out.print(e); }}}2.编写应用程序,使用System.in.read()方法读取用户从键盘输入的字节数据,回车后,把从键盘输入的数据存放到数组buffer中,并将用户输入的数据保存为指定路径下的文件。

import java.io.*;public class Class1{public static void main(String args[]){byte buffer[]=new byte[128];int n;try{n=System.in.read(buffer);FileOutputStream out=new FileOutputStream("./abc.txt",true);//追加//FileOutputStream out=new FileOutputStream("./abc.txt",false);out.write(buffer,0,n);out.close( );}catch(IOException e){ System.out.print(e); }}}3. 编写java应用程序,使用FileInputStream类对象读取程序本身(或其他目录下的文件)并显示在屏幕上。

import java.io.*;public class Class1{public static void main (String[] args){try{//FileInputStream fis=new FileInputStream("c:\\windows\\Config.txt");FileInputStream fis=new FileInputStream("Class1.java");int n;while((n=fis.read())!=-1)System.out.print((char)n);fis.close();}catch(IOException e){System.out.println(e.toString());}}}4. 编写java应用程序,使用FileInputStream类对象读取程序本身(或其他目录下的文件)到字节数组中,并显示在屏幕上(或存储为其他文件)。

import java.io.*;//读取程序本身,显示在屏幕上public class Class1{public static void main (String[] args){try{FileInputStream fis=new FileInputStream("Class1.java");byte[] b=new byte[fis.available()];System.out.println("文件流的大小:"+fis.available());int n=fis.read(b);myprint(b);System.out.print("实际读取的字节数:"+n);fis.close();}catch(IOException e){System.out.println(e.toString());}}static void myprint(byte[] x){for(int i=0;i<x.length;i++)System.out.print((char)x[i]);}}5.编写应用程序,程序中创建一个文件输入流对象fis,读取当前目录下文本文件test1.txt,该文件内容有如下两行文本:Java program is easy.I like it.从文件输入流fis中读取5个字节数据存放到数组b中,字节数据存放的位置从数组下标3开始。

将读取的数据在屏幕输出。

import java.io.*;public class Class1{public static void main( String[ ] args ) throws IOException{File file = new File("./test1.txt");FileInputStream fis = new FileInputStream( file);int n=0;byte b[]=new byte[8];n=fis.read(b,3,5);fis.close();for(int i=3;i<b.length;i++)//字节数组中从下标3开始的数据转化为字符后输出。

System.out.print((char)b[i]+"\t");}}6.编写应用程序,程序中创建一个文件输出流对象out向当前目录下已有的文件abc.txt(内容为:"ABCDEFG")写入字符串"abcdefg"中的所有字符和大写字母'A'。

import java.io.*;public class Class1{public static void main (String[] x) throws IOException{String s="abcdefg";byte[] b;FileOutputStream out=new FileOutputStream("./abc.txt",true);//添加字节数据b=s.getBytes();out.write(b,0,b.length);out.write(65);//写入字节数据65---‘A’out.close();}}7.使用RandomAccessFile类及其方法。

import java.io.*;public class Class1{public static void main( String[ ] args ){try{//以随机方式写入数据RandomAccessFile out = new RandomAccessFile( "1.dat" , "rw" );out.writeInt(12345);//4out.writeChar('A');//2out.writeBoolean(true);//1out.writeUTF("程序设计");//8//显示字符‘A' 和”程序设计“out.seek(4);System.out.println(out.readChar());out.skipBytes(1);//out.seek(7);System.out.println(out.readUTF());System.out.println(out.getFilePointer());System.out.println(out.length());out.close();System.in.read();}catch( IOException e ){System.out.println( e );System.exit( -2 );}}}8.编写应用程序,使用RandomAccessFile类及其方法,把程序本身分两次显示在屏幕上。

相关主题