Java -- IO练习

来源:互联网 发布:mac中显示隐藏文件夹 编辑:程序博客网 时间:2024/05/16 08:56

IO流

 

1、分别使用字节流和字符流完成以下程序:

 

1. 在指定的路径下新建一个 .txt 文件 "test.txt",利用程序在文件中写入如下内容:

 

"Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于

19955月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java技术具有

卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级

计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业

环境下,Java更具备了显著优势和广阔前景。"

 

2. 利用程序读取 test.txt文件的内容,并在控制台打印

 

3. 利用程序复制 test.txttest1.txt

 

FileWriter a =new FileWriter("C:\\Users\\Administrator\\Desktop\\Java.txt");

a.write("\tJava 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Miscroystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE、JavaEE、JavaME)的总称。\n\tJava技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心。游戏控制台。科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。");

a.flush();

FileReader b =new FileReader("C:\\Users\\Administrator\\Desktop\\Java.txt");

int i = 0;

char[]p = new char[1024];

while((i =b.read(p)) != -1){

System.out.println(new String(p,0,i));

}

FileWriter c =new FileWriter("C:\\Users\\Administrator\\Desktop\\Java1.txt");

int k = 0;

char[]l = new char[1024];

while((k =b.read(l)) != -1){

c.write(l,0,k);

}

b.close();

c.close();

 

2、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

 

答:字节流:继承于InputStream OutputStream

字符流:继承于InputStreamReader OutputStreamWriter

 

3、什么是java序列化,如何实现java序列化?

答:

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

 

4、填空

Java中,输入输出的处理需要引入的包是  java.IO.File        

面向字节的输入输出类的基类是  InputStream   和    outputStream         

面向字符的输入输出类的基类是   Reader         Writer       

 

5、使用处理流的优势有哪些?如何识别所使用的流是处理流还是节点流?

答:对开发人员来说,使用处理流进行输入/输出操作更简单;使用处理流的执行效率更高。 
判别 处理流的构造器的参数不是一个物理节点,而是已经存在的流。而节点流都是直接以物理IO及节点作为构造器参数的。

 

6、填空:下列程序将从file1.dat文件中读取全部数据,然后写到file2.dat文件中。

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.IOException;

 

public class FileStreamInOut {

public static void main(String[] args){

try{

File inFile = new File("_"C:\\Users\\Administrator\\Desktop\\file1.txt"________");

File outFile = new File("__"C:\\Users\\Administrator\\Desktop\\file2.txt"________");

FileInputStream  fis = new FileInputStream(__inFile_______);

FileOutputStream  fos = new FileOutputStream(___outFile______);

int c;

while((c = fis.read())!=-1){

fos.write(c);

}

__fis___.close();

__fos___.close();

}catch(FileNotFoundException e){

System.out.println("FileStreamsTest:"+e);

}catch(IOException e){

System.out.println("FileStreamTest"+e);

}

}

}

 

7Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请指出它们分别是哪些类?

:字节流和字符流 
按流的流向的不同,分为输入流和输出流。 
按流的角色来分,可分为节点流和处理流。缓冲流、转换流、对象流和打印流等都属于处理流,使得输入/输出更简单,执行效率更高。

 

8、什么是标准的I/O流?

java语言中,用stdin表示键盘,用stdout表示监视器。他们均被封装在System类的类变量in 和out中, 
对应于系统调用System.in和System.out。这样的两个流加上System.err统称为标准流,它们是在System类中声明的3个类变量: 
public static InputStream in 
publicstaticPrintStream out 
public static PrintStream err

 

9、选择

1.计算机处理的数据最终分解为▁AD▁的组合。

A 0

B 数据包

C 字母

D 1

2.计算机处理的最小数据单元称为▁B▁。

A

B 字节

C

D 文件

3.字母、数字和特殊符号称为▁C▁。

A

B 字节

C 字符

D 文件

4.ABC▁文件流类的close 方法可用于关闭文件。

A FileOutputStream

B FileInputStream

C RandomAccessFile

D FileWrite

5.RandomAccessFile 类的▁A▁方法可用于从指定流上读取整数。

A readInt

B readLine

C seek

D close

6.RandomAccessFile 类的▁B▁方法可用于从指定流上读取字符串。

A readInt

B readLine

C seek

D close

7.RandomAccessFile 类的▁C▁方法可用于设置文件定位指针在文件中的位置。

A readInt

B readLiIne

C seek

D close

8.FilterOutputStream类的构造方法中,下面哪个类是合法: C

A File

B InputStream

C OutputStream

D FileOutputStream

 

原创粉丝点击