0505秦振威软件工程一班实验七 流文件二.docx

上传人:b****3 文档编号:4643153 上传时间:2022-12-07 格式:DOCX 页数:12 大小:345.37KB
下载 相关 举报
0505秦振威软件工程一班实验七 流文件二.docx_第1页
第1页 / 共12页
0505秦振威软件工程一班实验七 流文件二.docx_第2页
第2页 / 共12页
0505秦振威软件工程一班实验七 流文件二.docx_第3页
第3页 / 共12页
0505秦振威软件工程一班实验七 流文件二.docx_第4页
第4页 / 共12页
0505秦振威软件工程一班实验七 流文件二.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

0505秦振威软件工程一班实验七 流文件二.docx

《0505秦振威软件工程一班实验七 流文件二.docx》由会员分享,可在线阅读,更多相关《0505秦振威软件工程一班实验七 流文件二.docx(12页珍藏版)》请在冰豆网上搜索。

0505秦振威软件工程一班实验七 流文件二.docx

0505秦振威软件工程一班实验七流文件二

实验报告七

(二)

课程

Java程序设计

实验项目

流文件

成绩

学号

201305020115

姓名

秦振威

实验

日期

2015.11.25

专业

班级

软件工程一班2013级

指导

教师

杨力

实验报告上传到邮箱scxdyl@邮件主题务必写上专业年级(第几班)(否则查不到你没法给成绩)学号姓名和实验七

(二)文件

一【实验目的】

1、了解文件的概念和文件对象的创建方法。

2、了解FileInputStream和FileOutoutStream的基本概念。

3、学会创建文件输入输出流。

4、掌握使用文件输入输出流读写文件的方法。

二【实验内容】

实验3基本数据类型的数据输入和输出

掌握DataInputStream和DataOutputStream对象的创建形式

基本数据类型数据的写到文件和从文件读取的方法

voidwriteXXX(XXXa)

将某种数据以某种格式写入到文件中去。

voidreadXXX(XXXa)

从文件中读取XXX数据

其中XXX为数据类型

仔细阅读并运行下面程序,理解和掌握基本数据类型的写入和读出方法

importjava.io.*;

importjava.util.Scanner;

publicclassEx9_6{

publicstaticvoidmain(String[]args)throwsIOException{

Filef=newFile("d:

\\","a.txt");

try{

FileOutputStreamout=newFileOutputStream(f);

DataOutputStreamout2=newDataOutputStream(out);

FileInputStreamin=newFileInputStream(f);

DataInputStreamin2=newDataInputStream(in);

out2.writeInt(100);

out2.writeDouble(3.1415926535897932);

Scannerstr=newScanner(System.in);

out2.writeUTF(str.nextLine());

System.out.println(in2.readInt());

System.out.println(in2.readDouble());

System.out.println(in2.readUTF());

out2.close();

out.close();

in2.close();

in.close();

}

catch(FileNotFoundExceptione){

e.printStackTrace();

}

}

}

编程实现:

从键盘输入5个整型数据(可以用Scanner对象的nextint方法)放入数组中,然后将数组的每个元素写入到文件A.dat中,最后从A.dat文件中读出这些数据并显示

importjava.io.*;

importjava.util.Scanner;

publicclassMain{

publicstaticvoidmain(String[]args)throwsIOException{

//TODOAuto-generatedmethodstub

try{

FileOutputStreamout=newFileOutputStream("d:

\\a.dat");

DataOutputStreamout2=newDataOutputStream(out);

FileInputStreamin=newFileInputStream("d:

\\a.dat");

DataInputStreamin2=newDataInputStream(in);

Scannerscan=newScanner(System.in);

int[]a=newint[5];

for(inti=0;i<5;i++){

a[i]=scan.nextInt();

out2.writeInt(a[i]);

}

for(intj=0;j<5;j++){

System.out.println(in2.readInt());

}

out2.close();

out.close();

in2.close();

in.close();

}

catch(Exceptione){

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

}

}

}

实验4对象的写入文件和读出对象序列化和反序列化

将1个对象写入文件中,这个对象对应的类需要实现可序列化即定义类的时候实现序列化接口如下:

publicclassAimplementsSerializable

{

//类体

}

利用ObjectOutputStream和ObjectInputStream对象实现对象的写入和读出文件,观察下面的程序注意类的创建可序列化书写形式,以及ObjectOutputStream和ObjectInputStream对象的创建和writeeobject和readobject的写法

然后运行观察结果

importjava.io.*;

publicclassCatimplementsSerializable{

privateStringname;

publicCat(){

this.name="newcat";

}

publicStringgetName(){

returnthis.name;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicstaticvoidmain(String[]args){

Catcat=newCat();

try{

FileOutputStreamfos=newFileOutputStream("catDemo.out");

ObjectOutputStreamoos=newObjectOutputStream(fos);

cat.setName("Jerry");

System.out.println("cat'name:

"+cat.getName());

oos.writeObject(cat);

oos.close();

}catch(Exceptionex){ex.printStackTrace();}

try{

FileInputStreamfis=newFileInputStream("catDemo.out");

ObjectInputStreamois=newObjectInputStream(fis);

Catcat2=(Cat)ois.readObject();

System.out.println("cat2'name:

"+cat2.getName());

cat2.setName("Tom");

System.out.println("cat2'name:

"+cat2.getName());

System.out.println("cat'name:

"+cat.getName());

ois.close();

}catch(Exceptionex){ex.printStackTrace();}

}

}

编程实现:

创建1个学生类,有学号,姓名和1门成绩,设计相关构造方法和输入,输出方法

通过main函数创建学生类对象,并将该对象写入到文件中,并从文件中读出改对象,并调用对象的输出方法。

importjava.io.Serializable;

 

publicclassStudentimplementsSerializable{

Stringid;

Stringname;

intscore;

publicStudent(){

this.name="秦振威";

this.id="201305020115";

this.score=100;

}

publicStringgetId(){

returnid;

}

publicvoidsetId(Stringid){

this.id=id;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetScore(){

returnscore;

}

publicvoidsetScore(intscore){

this.score=score;

}

}

importjava.io.*;

publicclassMain{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Students1=newStudent();

try{

FileOutputStreamfos=newFileOutputStream("d:

\\Student.txt");

ObjectOutputStreamoos=newObjectOutputStream(fos);

s1.setId("201305020115");

s1.setName("秦振威");

s1.setScore(100);

System.out.println("id:

"+s1.getId()+"name:

"+s1.getName()+"score:

"+s1.getScore());

oos.writeObject(s1);

oos.close();

}

catch(Exceptione){

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

}

try{

FileInputStreamfis=newFileInputStream("d:

\\Student.txt");

ObjectInputStreamois=newObjectInputStream(fis);

Students2=(Student)ois.readObject();

System.out.println("id:

"+s1.getId()+"name:

"+s1.getName()+"score:

"+s1.getScore());

ois.close();

}

catch(Exceptione){

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

}

 

}

}

 

3.

编写一个Java应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。

[程序模版]

importjava.io.*;

publicclassNumberExample{

 

publicstaticvoidmain(Stringargs[]){

inta1=12,a2=1180;

longb=808080;

floatx1=3.14F,x2=12.456F;

doubled=1234.9876;

booleanboo1=true,boo2=false;

charc='我';

Filef=【代码1】//创建文件。

try{

 

FileOutputStreamfos=【代码1】//创建指向f文件输出流

DataOutputStreamout_data=【代码2】//创建指向fos的数据输出流

【代码2】//out_data将数据a1写入到文件

【代码3】//out_data将数据a2写入到文件

【代码4】//out_data将数据b写入到文件

【代码5】//out_data将数据x1写入到文件

【代码6】//out_data将数据x2写入到文件

【代码7】//out_data将数据d写入到文件

【代码8】//out_data将数据boo1写入到文件

【代码9】//out_data将数据boo2写入到文件

【代码10】//out_data将数据c写入到文件

}

catch(IOExceptione){

}

try{

 

FileInputStreamfis=【代码11】//创建指向f文件输入流

DataInputStreamin_data=【代码12】//创建指向fis的数据输入流

System.out.println(【代码13】);//in_data读取int整数

System.out.println(【代码14】);//in_data读取int整数

System.out.println(【代码15】);//in_data读取long整数

System.out.println(【代码16】);//in_data读取float数

System.out.println(【代码17】);//in_data读取float数

System.out.println(【代码18】);//in_data读取double数

System.out.println(【代码19】);//in_data读取boolean数据

System.out.println(【代码20】);//in_data读取boolean数据

System.out.print(【代码21);//in_data读取char数据

}

catch(IOExceptione){

}

 

}

}

importjava.io.*;

publicclassMain{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

inta1=12;

inta2=1180;

longb=808080;

floatx1=3.14F;

floatx2=12.456F;

doubled=1234.9876;

booleanboo1=true;

booleanboo2=false;

charc='我';

try{

FileOutputStreamfos=newFileOutputStream("d:

\\1.txt");

DataOutputStreamout_data=newDataOutputStream(fos);

out_data.writeInt(a1);

out_data.writeInt(a2);

out_data.writeLong(b);

out_data.writeFloat(x1);

out_data.writeFloat(x2);

out_data.writeDouble(d);

out_data.writeBoolean(boo1);

out_data.writeBoolean(boo2);

out_data.writeChar(c);

FileInputStreamfis=newFileInputStream("d:

\\1.txt");

DataInputStreamin_data=newDataInputStream(fis);

System.out.println(in_data.readInt());

System.out.println(in_data.readInt());

System.out.println(in_data.readLong());

System.out.println(in_data.readFloat());

System.out.println(in_data.readFloat());

System.out.println(in_data.readDouble());

System.out.println(in_data.readBoolean());

System.out.println(in_data.readBoolean());

System.out.println(in_data.readChar());

out_data.close();

fos.close();

in_data.close();

fis.close();

}

catch(Exceptione){

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

}

}

}

将以上各题的源程序、运行结果写在该题后面,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在下面的空白中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1