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;izz.{
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;iggg.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;iarr[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;
}