Java实验指导4io流文档格式.docx

上传人:b****3 文档编号:18274461 上传时间:2022-12-15 格式:DOCX 页数:17 大小:36.74KB
下载 相关 举报
Java实验指导4io流文档格式.docx_第1页
第1页 / 共17页
Java实验指导4io流文档格式.docx_第2页
第2页 / 共17页
Java实验指导4io流文档格式.docx_第3页
第3页 / 共17页
Java实验指导4io流文档格式.docx_第4页
第4页 / 共17页
Java实验指导4io流文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java实验指导4io流文档格式.docx

《Java实验指导4io流文档格式.docx》由会员分享,可在线阅读,更多相关《Java实验指导4io流文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

Java实验指导4io流文档格式.docx

dirctoryis"

+f1[i].getName());

}

else{

flieis"

}

}

2.编写一个JavaApplication程序(文件名为Copy),要求通过字节流从该文件中读取数据并写入到“temp.txt”文件中去,实现该文件的复制。

publicclassCopyFile{

publicstaticvoidmain(Stringargs[]){

inta;

byte[]b="

你好吗,逗比"

.getBytes();

try{

out=new("

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\temp.txt"

out.write(b);

out.close();

}

catch(IOExceptione){

error"

+e);

 

3.编写一个程序(文件名为ReadExample.java),将程序文件本身的内容每行开头添加上行号拷贝到另一个文件temp中。

publicclassReadExample{

char[]b=newchar[18];

newFile("

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\ReadExample.java"

in=new(f);

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\temp"

while((a=in.read(b,0,18))!

=-1){

Strings=newString(b,0,18);

out.write(b);

System.out.print(b);

}

in.close();

4.现在有如下格式的学生成绩单(文本格式)score.txt:

姓名:

张三,数学72分,物理67分,英语70分.

李四,数学92分,物理98分,英语88分.

周五,数学68分,物理80分,英语77分.

要求按行读入成绩单,并在该行的后面加上该运动员的总成绩,然后再将该行写入到一个名字为socreAnalysis.txt的文件中。

请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。

Fenxi.java文件清单:

importjava.util.*;

publicclassFenxi{

publicstaticintgetTotalScore(Strings){

Stringregex="

[^0123456789]"

;

//匹配非数字的正则表达式

StringdigitMess=s.replaceAll(regex,"

*"

StringTokenizerfenxi=newStringTokenizer(digitMess,"

inttotalScore=0;

while(fenxi.hasMoreTokens()){

intscore=Integer.parseInt(fenxi.nextToken());

totalScore=totalScore+score;

returntotalScore;

AnalysisResult.java文件清单:

publicclassAnalysisResult{

publicstaticvoidmain(Stringargs[]){

=newFile("

score.txt"

socreAnalysis.txt"

try{

Writerout=【代码1】//创建指向文件fWrite的文件输出流对象out

BufferedWriterbufferWrite=【代码2】//创建指向out的bufferWrite流

Readerin=【代码3】//创建指向文件fRead的文件输入流对象in

BufferedReaderbufferRead=【代码4】//创建指向in的缓冲流

Stringstr=null;

while((str=bufferRead.readLine())!

=null){

inttotalScore=Fenxi.getTotalScore(str);

str=str+"

总成绩:

"

+totalScore;

System.out.println(str);

bufferWrite.write(str);

bufferWrite.newLine();

bufferRead.close();

bufferWrite.close();

catch(IOExceptione){

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

classAnalysisResult{

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\score.txt"

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\socreAnalysis.txt"

Writerout=new(fWrite);

BufferedWriterbufferWrite=newBufferedWriter(out);

Readerin=new(fRead);

BufferedReaderbufferRead=newBufferedReader(in);

5.编写一个程序,利用缓冲流实现接收键盘输入的数据,并写入到指定文件中(如当前目录下的tt.txt文件)的功能,要求键盘输入”exit”时结束。

(提示:

importjava.util.Scanner;

publicclasssy5{

Scannersc=newScanner(System.in);

Strings=sc.next();

\\jdk1.8.0_20\\新建文件夹\\zzj\\src\\zzj\\tt.txt"

while(s=="

exit"

){

BufferedWriterbr=newBufferedWriter(out);

br.write(s);

s=sc.next();

6.下面的程序使用随机流进行文件的保存和读取,请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序,使得程序在控制台的输出结果如下:

程序清单:

publicclasstestRandom2{

try{

RandomAccess=newRandomAccessFile("

rtest.dat"

"

rw"

for(inti=0;

i<

10;

i++){

rf.writeInt(i);

rf.writeDouble(i*1.414);

rf.close();

rf=newRandomAccessFile("

rf.seek(【代码1】);

rf.writeInt(47);

rf.writeDouble(47.00021);

r"

;

System.out.println("

Value"

+rf.readInt()+"

:

"

+【代码2】);

rf.【代码3】;

}catch(IOExceptione){

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

rf.seek(0);

+rf.readDouble());

7.下面的程序使用对象的序列化及对象流进行对象的保存和读取,请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。

importjava.io.;

importjava.io.IOException;

importjava.io.ObjectInputStream;

importjava.io.ObjectOutputStream;

importjava.io.Serializable;

publicclassSerializableDemo{

publicstaticvoidmain(Stringargs[])throwsException{

studentstu=newstudent(20131064,"

张三"

20,"

西华大学"

fout=new("

data1.ser"

ObjectOutputStreamoout=new【代码1】;

//输出对象

oout.writeObject(stu);

oout.close();

stu=null;

fin=new【代码2】;

ObjectInputStreamoin=new【代码3】;

//读入对象

stu=【代码4】;

oin.close();

System.out.println("

学生信息:

ID:

+stu.id);

name:

+stu.name);

age:

+stu.age);

department:

+stu.department);

classstudentimplementsSerializable{

intid;

Stringname;

intage;

Stringdepartment;

publicstudent(intid,Stringname,intage,Stringdepartment){

this.id=id;

this.name=name;

this.age=age;

this.department=department;

privatestaticstudentstu;

stu=newstudent(20131064,"

ObjectOutputStreamoout=newObjectOutputStream(fout);

fin=new("

ObjectInputStreamoin=newObjectInputStream(fin);

stu=newstudent(20131064,"

System.out.println("

ID:

+stu.id);

+stu.name);

8.下面的程序以字节为单位进行文件的读写操作,请阅读并分析该程序,上机运行查看效果,然后修改程序,使其以字符流方式进行文件的读写操作。

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassreaderbyteextendsJFrameimplementsActionListener{

JButtonb1,b2,b3;

JTextFieldjt1;

JTextAreajt2;

readerbyte(){

setTitle("

演示"

getContentPane().setLayout(newFlowLayout());

this.setDefaultLookAndFeelDecorated(true);

this.setSize(450,350);

b1=newJButton("

写入"

b2=newJButton("

读取"

b3=newJButton("

退出"

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

jt1=newJTextField(10);

jt2=newJTextArea(10,30);

jt2.setLineWrap(true);

jt2.setWrapStyleWord(true);

JScrollPanejspa=newJScrollPane(jt2);

JPanelp1=newJPanel();

p1.add(newJLabel("

请输入文件名:

));

p1.add(jt1);

JPanelp2=newJPanel();

p2.add(newJLabel("

文件内容:

p2.add(jspa);

JPanelp3=newJPanel();

p3.add(b1);

p3.add(b2);

p3.add(b3);

getContentPane().add(p1);

getContentPane().add(p2);

getContentPane().add(p3);

setVisible(true);

publicvoidactionPerformed(ActionEventee){

if(ee.getSource()==b3){

dispose();

System.exit(0);

if(ee.getSource()==b1)

writer();

if(ee.getSource()==b2)

reader();

voidwriter(){

Strings1,s2;

s1=jt1.getText().trim();

if(s1.equals("

)){

JOptionPane.showMessageDialog(null,"

没有输入文件名"

jt1.requestFocus();

}else{

s2=jt2.getText().trim();

chars22[]=s2.toCharArray();

try{

file=new(s1);

for(inti=0;

s22.length;

i++)

(s22[i]);

();

}catch(IOExceptionie){

jt1.setText("

jt2.setText("

voidreader(){

Strings1,s2="

;

}else

{

intc;

while((c=())!

=-1)

s2=s

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

当前位置:首页 > 经管营销 > 经济市场

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

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