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

第十五章习题※答案

精品文档

一、填空题

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)PrintWriter

2.以下选项中不属于File类能够实现的功能的是(D)

A)建立文件B)建立目录C)获取文件属性D)读取文件内容

3.以下选项中哪个类是所有输入字节流的基类(A)

A)InputStream B)OutputStream C)Reader D)Writer

4.以下选项中哪个类是所有输出字符流的基类(D)

A)InputStream B)OutputStream C)Reader D)Writer

5.下列选项中能独立完成外部文件数据读取操作的流类是(B)

A)InputStream B)FileInputStream C)FilterInputStream D)DataInputStream

6.下列选项中能独立完成外部文件数据读取操作的流类是(B)

A)Reader B)FileReader C)BufferedReader D)ReaderInputStream

7.在建立FileInputStream流对象时可能会产生下列哪种类型的异常(B)

A)ClassNotFoundException B)FileNotFoundException

C)RuntimeException D)AWTException

8.在使用FileInputStream流对象的read方法读取数据时可能会产生下列哪种类型的异常(D)A)ClassNotFoundException B)FileNotFoundException

C)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

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()];

祓瑳浥漮瑵瀮楲瑮湬尨文件流的大小:+fis.available());

int n=fis.read(b);

myprint(b);

祓瑳浥漮瑵瀮楲瑮尨实际读取的字节数:+n);

fis.close();

}

catch(IOException e)

{

System.out.println(e.toString());

}

}

static void myprint(byte[] x)

{

for(int i=0;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

System.out.print((char)b[i]+\);

}

}

6.编写应用程序,程序中创建一个文件输出流对象out向当前目录下已有的文件abc.txt(内容为:????)写入字符串慜换敤杦中的所有字符和大写字母'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( .dat ,

w );

out.writeInt(12345);//4

out.writeChar('A');//2

精品文档.

精品文档

out.writeBoolean(true);//1

畯?牷瑩啥?尨程序设计);//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类及其方法,把程序本身分两次显示在屏幕上。第一次直接显示,第二次给每一行添加的行号显示。

import java.io.*;

public class Test

{

public static void main( String[ ] args ) throws IOException

{

RandomAccessFile randomfile = new RandomAccessFile(Test.java ,

);

String s;

while((s=randomfile.readLine())!=null)

{ System.out.println(s); }

long filePointer=0,fileLength=randomfile.length();

randomfile.seek(0); //文件指针已到文件尾,将文件指针重设到文件开始位置

int i=1;

while(filePointer

{

s=randomfile.readLine();

System.out.println((i++)+ +s);

filePointer=randomfile.getFilePointer();

}

randomfile.close();

}

}

精品文档.

精品文档

9.在程序所在的目录下有子目录b,目录b下有文本文件testb.txt。编写应用程序,创建文件对象:

File file=new File(/testb.txt);

通过文件对象file得到它的文件名、相对路径、绝对路径、父目录名。

import java.io.*;

public class Class1

{

public static void main( String args[ ] )

{

File file=new File(/testb.txt);

祓瑳浥漮瑵瀮楲瑮湬尨文件名: + file.getName( ) );

祓瑳浥漮瑵瀮楲瑮湬尨相对路径: + file.getPath( ) );

祓瑳浥漮瑵瀮楲瑮湬尨绝对路径: + file.getAbsolutePath( ) );

祓瑳浥漮瑵瀮楲瑮湬尨父目录名: + file.getParent( ) );

}

}

10.请编写一个名为Class1.java的Application,其功能为:测验文件Class1.java是否存在并输出其长度。

import java.io.*;

public class Class1

{

public static void main (String[] args)

{

File f1=new File(./Class1.java);

System.out.println(is exist:+f1.exists( ));

System.out.println(

ile length:+f1.length( ));

}

}

11.编写应用程序:创建目录c:\temp,并创建一个文件2.txt,向该文件中写入字符串The first 湳睯挠浡?共5次。

import java.io.*;

public class Class1

{

public static void main(String args[]) throws IOException

{

File file1=new File(c:\\temp);

file1.mkdir();

File file2=new File(file1,.txt);

FileOutputStream out1=new FileOutputStream(file2);

String s=The first snow came.;

byte[] b=s.getBytes();

for(int i=0;i<5;i++)

精品文档.

精品文档

{

out1.write(b,0,b.length);

}

}

}

12.过滤文件并显示。

import java.io.*;

public class Class1

{

public static void main( String[ ] args )

{

try

{

File oDir = new File( . );

String[ ] strList;

//如果没有命令行参数就取当前目录下的所有文件列表

if( 0 == args.length )

strList = oDir.list( );

else

strList = oDir.list( new DirFilter(args[0]));

for( int i = 0; i < strList.length; i ++ )

System.out.println( strList[ i ] );

}

catch( Exception e )

{

相关主题
文本预览
相关文档 最新文档