欢迎来到天天文库
浏览记录
ID:6031889
大小:102.00 KB
页数:5页
时间:2017-12-31
《java文件操作实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一.实验目的及实验环境学习并掌握java中文件的操作二.实验内容将下列文件操作类补充完整classMyFile{//获取目录大小publiclonggetLength(Stringpath);//拷文件publicvoidcopy(Stringsource,Stringdist);//拷目录(目录需带子目录)publicvoidcopyDir(StringsourceDir,StringdistDir);}三.方案设计1.获取目录大小:如果是目录则递归计算其内容的总大小,如果是文件则直接返回其大小,以字节为单位2.文件拷贝:将文件分段读入内存中,然后写入新的文件3.目录拷贝:如
2、果是目录则在对应位置新建目录,如果是文件则调用文件拷贝函数进行拷贝importjava.io.*;publicclassFileIO{//获取目录大小publiclonggetLength(Stringpath){FilecurrentFile=newFile(path);longsize=0;if(currentFile.isDirectory()){FileFileList[]=currentFile.listFiles();for(inti=0;i3、etLength(FileList[i].getPath());}else{size=size+FileList[i].length();}}returnsize;}else{returncurrentFile.length();}}//拷文件publicvoidcopy(Stringsource,Stringdist){FilesourceFile=newFile(source);FiledistFile=newFile(dist);try{if(!sourceFile.isFile()){System.out.println("Path"+source+"givedisno4、tafile");return;}if(!sourceFile.exists()){System.out.println("FileNotexist");}if(distFile.exists()){System.out.println("Distfile"+dist+"isalreadyexist");}else{distFile.createNewFile();}intBufferLength=4096;//4k对齐FileInputStreamFileIn=newFileInputStream(sourceFile);FileOutputStreamFileOut=new5、FileOutputStream(distFile);byte[]buffer=newbyte[BufferLength];while(true){intByteRealRead=FileIn.read(buffer);if(ByteRealRead==-1){FileIn.close();FileOut.flush();FileOut.close();return;}elseFileOut.write(buffer,0,ByteRealRead);}}catch(Exceptionee){System.out.println("Exception:"+ee.getMessag6、e());}}publicvoidcopyDir(StringsourceDir,StringdistDir){//在distDir文件夹下新建sourceDir指向的文件夹同名文件夹,//并将文件夹中所有文件或目录拷贝到新文件夹if(sourceDir.lastIndexOf('/')!=sourceDir.length()){sourceDir+='/';}if(distDir.lastIndexOf('/')!=distDir.length()){distDir+='/';}FilesourceDirFile=newFile(sourceDir);FiledistDirF7、ile=newFile(distDir+sourceDirFile.getName());if(sourceDirFile.exists()){if(sourceDirFile.isDirectory()){if(!distDirFile.exists()){distDirFile.mkdirs();}File[]dirChildren=sourceDirFile.listFiles();for(FilecurrentChild:dirChildren)if(currentChild.isD
3、etLength(FileList[i].getPath());}else{size=size+FileList[i].length();}}returnsize;}else{returncurrentFile.length();}}//拷文件publicvoidcopy(Stringsource,Stringdist){FilesourceFile=newFile(source);FiledistFile=newFile(dist);try{if(!sourceFile.isFile()){System.out.println("Path"+source+"givedisno
4、tafile");return;}if(!sourceFile.exists()){System.out.println("FileNotexist");}if(distFile.exists()){System.out.println("Distfile"+dist+"isalreadyexist");}else{distFile.createNewFile();}intBufferLength=4096;//4k对齐FileInputStreamFileIn=newFileInputStream(sourceFile);FileOutputStreamFileOut=new
5、FileOutputStream(distFile);byte[]buffer=newbyte[BufferLength];while(true){intByteRealRead=FileIn.read(buffer);if(ByteRealRead==-1){FileIn.close();FileOut.flush();FileOut.close();return;}elseFileOut.write(buffer,0,ByteRealRead);}}catch(Exceptionee){System.out.println("Exception:"+ee.getMessag
6、e());}}publicvoidcopyDir(StringsourceDir,StringdistDir){//在distDir文件夹下新建sourceDir指向的文件夹同名文件夹,//并将文件夹中所有文件或目录拷贝到新文件夹if(sourceDir.lastIndexOf('/')!=sourceDir.length()){sourceDir+='/';}if(distDir.lastIndexOf('/')!=distDir.length()){distDir+='/';}FilesourceDirFile=newFile(sourceDir);FiledistDirF
7、ile=newFile(distDir+sourceDirFile.getName());if(sourceDirFile.exists()){if(sourceDirFile.isDirectory()){if(!distDirFile.exists()){distDirFile.mkdirs();}File[]dirChildren=sourceDirFile.listFiles();for(FilecurrentChild:dirChildren)if(currentChild.isD
此文档下载收益归作者所有