河南工业大学java实验四.docx

上传人:b****4 文档编号:24828663 上传时间:2023-06-01 格式:DOCX 页数:16 大小:240.71KB
下载 相关 举报
河南工业大学java实验四.docx_第1页
第1页 / 共16页
河南工业大学java实验四.docx_第2页
第2页 / 共16页
河南工业大学java实验四.docx_第3页
第3页 / 共16页
河南工业大学java实验四.docx_第4页
第4页 / 共16页
河南工业大学java实验四.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

河南工业大学java实验四.docx

《河南工业大学java实验四.docx》由会员分享,可在线阅读,更多相关《河南工业大学java实验四.docx(16页珍藏版)》请在冰豆网上搜索。

河南工业大学java实验四.docx

河南工业大学java实验四

班级计科1201姓名:

学号201216010506成绩

实验4——Java的输入机制

I实验目的

(1).Java如何操作文件

(2).了解Java中的输入机制;如何从控制台输入,如何用InputStream和Reader显示文件中的内容。

II实验内容

(1).递归遍历目录,显示其中的文件名。

a.源代码

b.packagecom.fileTest;

c.

d.importjava.io.File;

e.

f.publicclassBianLi{//遍历目录,显示文件的名字

g.

h./**

i.*@paramargs

j.*/

k.publicstaticvoidmain(String[]args){

l.

m.Filef=newFile("D:

/360安全浏览器下载");//创建一个File对象

n.listChids(f);//调用一个列出目录的方法

o.

p.}

q.

r.

s.

t.publicstaticvoidlistChids(Filef){

u.

v.System.out.println(f.getName());

w.

x.if(!

f.isDirectory()){//如果不是目录,退出

y.

zz.return;

aa.}else{

bb.

cc.File[]fs=f.listFiles();

dd.for(inti=0;i

ee.

ff.listChids(fs[i]);

gg.

hh.}

ii.}

jj.}

kk.}

ll.运行截图

(2).用InputStream的子类读入一个英文文本文件,并用System.out显示其中的内容。

a.源代码

b.packagecom.fileTest;

c.

d.importjava.io.*;

e.

f.publicclassFileinput{

g.

h./**

i.*@paramargs

j.*/

k.publicstaticvoidmain(String[]args)throwsIOException

l.{

m.//TODOAuto-generatedmethodstub

n.

o.Stringfile="src/abc.java";//英文本文件

p.Fileinputd=newFileinput();//实列化对象

q.d.readFile(file);//调用readFile方法

r.

s.}

t.

u.publicvoidreadFile(StringfileName)throwsIOException{

v.InputStreamin=newFileInputStream(fileName);//创建字节流对象

w.

x.//TODOAuto-generatedmethodstub

y.try{

zz.intb=0;

aa.while(true)

bb.{

cc.b=in.read();//得到内容判断是否结束

dd.if(b==-1)

ee.break;

ff.System.out.print((char)b);//得到内容进行处理,转换成字符型输出

gg.

hh.}

ii.}finally{

jj.if(in!

=null)

kk.in.close();//关闭流

ll.}

mm.

nn.}

oo.

pp.}

qq.运行截图

rr.

 

(3).用Reader的子类读入一个字符文件,并用System.out显示其中的内容。

1源代码

packagecom.fileTest;

importjava.io.*;

publicclassFileReaderBy{

/**

*@paramargs

*@throwsIOException

*

*/

publicstaticvoidmain(String[]args)throwsIOException{

//TODOAuto-generatedmethodstub

FileReaderBya=newFileReaderBy();//创建一个对象

a.readFile("src/fly.txt");//调用方法读入字符文件

}

publicvoidreadFile(Stringfilename)throwsIOException{

//TODOAuto-generatedmethodstub

BufferedReaderb=null;

try{

b=newBufferedReader(newFileReader(filename),8*1024);

Stringline=null;

//得到内容并判断是否到流的末尾

while((line=b.readLine())!

=null)

{

//得到的内容进行处理

System.out.println(line);//输出结果

}

}

finally

{

if(b!

=null)

b.close();//关闭流

}

}

}

运行截图

(4).从控制台输入Student类的信息,包括学号、姓名、年龄,如输入错误,提示用户重新输入。

创建该类,并在toString方法中输入个人信息。

1源

packageFileInput;

importcom.java.ErrorException;

publicclassStudents{

//学号

privatelongnum;

//姓名

privateStringname;

//年龄

privateintage;

publicStudents()

{

}

publicvoidsetId(longnum)

{

this.num=num;

}

publicvoidsetName(Stringname)

{

this.name=name;

}

publicvoidsetAge(intage)throwsErrorException

{if(age<0||age>120)

thrownewErrorException();

this.age=age;

}

@OverridepublicStringtoString(){

returnnum+""+name+""+age;//返回个人信息

}

}

代码

publicclassByScanner{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Studentss=newStudents();

Scannersc=newScanner(System.in);

intid=0;

Stringname=null;;

intage=0;

Stringlen=null;

while(true)

{

try{

System.out.println("请输入学号");

len=sc.nextLine();

id=Integer.parseInt(len);s.setId(id);

break;

}

catch(Exceptione)

{sc.nextLine();

System.out.println("Inputerror,pleaseinnputagain!

");

}

}

while(true){

try{

System.out.println("请输入姓名");

name=sc.next();

s.setName(name);

break;

}

catch(Exceptione)

{sc.nextLine();

System.out.println("Inputerror,pleaseinnputagain");

}

}

while(true){

try{

System.out.println("请输入年龄");

age=sc.nextInt();

s.setAge(age);

break;

}

catch(Exceptione)

{sc.nextLine();

System.out.println("Inputerror,pleaseinnputagain");

}

}

System.out.println("该学生的信息为:

"+s.toString());

}

}

运行截图

(5).增加

(1)中的功能,显示文件的大小,目录的话显示其中包括的所有文件的大小。

注意显示文件大小的单位(KB或MB)。

a.源代码

b.packagefilebianli;

c.

d.

e.importjava.text.DecimalFormat;

f.importjava.io.*;

g.publicclassBianli

h.{

i.publiclonggetFileSizes(Filef)throwsException{//取得文件大小

j.longs=0;

k.if(f.exists()){

l.FileInputStreamfis=newFileInputStream(f);

m.s=fis.available();

n.}else{

o.f.createNewFile();

p.System.out.println("文件不存在");

q.}

r.returns;

s.}

t.//递归

u.publiclonggetFileSize(Filef)throwsException//取得文件夹大小

v.{

w.longsize=0;

x.Fileflist[]=f.listFiles();

y.for(inti=0;i

zz.{

aa.if(flist[i].isDirectory())

bb.{

cc.size=size+getFileSize(flist[i]);

dd.}else

ee.{

ff.size=size+flist[i].length();

gg.}

hh.}

ii.returnsize;

jj.}

kk.publicStringFormetFileSize(longfileS){//转换文件大小

ll.DecimalFormatdf=newDecimalFormat("#.00");

mm.StringfileSizeString="";

nn.if(fileS<1024){

oo.fileSizeString=df.format((double)fileS)+"B";

pp.}elseif(fileS<1048576){

qq.fileSizeString=df.format((double)fileS/1024)+"K";

rr.}elseif(fileS<1073741824){

ss.fileSizeString=df.format((double)fileS/1048576)+"M";

tt.}else{

uu.fileSizeString=df.format((double)fileS/1073741824)+"G";

vv.}

ww.returnfileSizeString;

xx.}

yy.

zzz.publiclonggetlist(Filef){//归求取目录文件个数

aaa.

bbb.System.out.println(f.getName());

ccc.longsize=0;

ddd.Fileflist[]=f.listFiles();

eee.size=flist.length;

fff.for(inti=0;i

ggg.if(flist[i].isDirectory()){

hhh.size=size+getlist(flist[i]);

iii.size--;

jjj.}

kkk.}

lll.returnsize;

mmm.

nnn.}

ooo.

ppp.publicstaticvoidmain(Stringargs[])

qqq.{

rrr.Bianlig=newBianli();

sss.

ttt.try

uuu.{

vvv.longl=0;

www.

xxx.Filef=newFile("D:

/360安全浏览器下载");

yyy.if(f.isDirectory()){//如果路径是文件夹的时候

zzzz.System.out.println("文件个数"+g.getlist(f));

aaaa.System.out.println("目录");

bbbb.l=g.getFileSize(f);

cccc.System.out.println("目录的大小为:

"+g.FormetFileSize(l));

dddd.}else{

eeee.System.out.println("文件个数1");

ffff.System.out.println("文件");

gggg.l=g.getFileSizes(f);

hhhh.System.out.println("文件的大小为:

"+g.FormetFileSize(l));

iiii.}

jjjj.

kkkk.}catch(Exceptione)

llll.{

mmmm.e.printStackTrace();

nnnn.}

oooo.}

pppp.}

qqqq.

rrrr.运行截图

ssss.

tttt.

 

III在本次实验中的问题和解决方法

那个第四题当输入学号如果是0开头,那输出结果就会被舍弃因为不是一个数,如果非要输入0开头的学号,还没找到解决的办法,解决了那个输学号空格问题,解决年龄超过一定数和负数问题,文件显示大小出现的问题,看了下博客园的写的。

IV心得体会

Java博大进深,不懂的很多的,继续努力学习吧

#include

#include

#include

#include

doublewtime(void);

intmain(intarc,char**arv){

intstepLength=0;

intj=0;

while(arv[1][j]!

=0){

stepLength=stepLength*10+(arv[1][j]-48);

j++;

}

int*arr=(int*)malloc(64*1024*1024*sizeof(int));

longi=0;

longlength=64*1024*1024;

doubletimeStart,timeEnd;

timeStart=wtime();

for(i=0;i

arr[i]=arr[i]*3;

}

timeEnd=wtime();

printf("%5.10f\n",(double)(timeEnd-timeStart));

free(arr);

return0;

}

doublewtime(void){

doublenow_time;

structtimevaletstart;

structtimezonetzp;

if(gettimeofday(&etstart,&tzp)==-1){

perror("notsuccessful!

\n");

}

now_time=((double)etstart.tv_sec)+((double)etstart.tv_usec)/1000000;

returnnow_time;

}

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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