0505秦振威软件工程一班实验七 流文件二.docx
- 文档编号:4643153
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:12
- 大小:345.37KB
0505秦振威软件工程一班实验七 流文件二.docx
《0505秦振威软件工程一班实验七 流文件二.docx》由会员分享,可在线阅读,更多相关《0505秦振威软件工程一班实验七 流文件二.docx(12页珍藏版)》请在冰豆网上搜索。
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());
}
}
}
将以上各题的源程序、运行结果写在该题后面,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在下面的空白中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0505秦振威软件工程一班实验七 流文件二 0505 秦振威 软件工程 一班 实验 文件