java文件管理器Word文档下载推荐.doc
《java文件管理器Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《java文件管理器Word文档下载推荐.doc(16页珍藏版)》请在冰豆网上搜索。
![java文件管理器Word文档下载推荐.doc](https://file1.bdocx.com/fileroot1/2022-10/4/7b595e3c-5f81-4db4-9067-fd28bbf0bd44/7b595e3c-5f81-4db4-9067-fd28bbf0bd441.gif)
□报告规范;
其他:
评价教师签名:
一、实验目的
运用面向对象程序设计思想,基于Java文件管理和I/O框架,实现命令行下的文件管理器。
二、实验项目内容
1、实现文件夹创建、删除、进入。
2、实现当前文件夹下的内容罗列,能够根据文件名、日期、大小,类型进行排序。
3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。
4、实现指定文件的加密和解密。
5、实现多个文件的压缩和解压缩。
6、实现一个大文件的分割和合并。
7、实现把项目导出为可执行的*.jar文件。
三、实验过程或算法(源程序)
要求:
写明设计思想、程序的结构、功能关系图、类的说明并按照UML的规范画出类之间的关系图、程序执行流程图,最后是源代码。
设计思想:
主界面给出所有的选项,通过switch-case事件,来选择不同功能。
运用到try-catch处理异常。
文件的操作用到了:
FileInputStream和FileOutputStream,BufferedInputStream和BufferedOutputStream,Scanner等流。
程序的结构:
src里共含有四个java文件,分别为压缩、解压缩、分割与合并、main和其余功能选项。
功能关系图:
创建目录
删除目录
复制文件
复制目录
加密解密文件
主界面列出目录
重命名
文件的压缩与解压
文件的分割与合成
退出
程序执行流程图:
开始
↓
进入主界面
按下键盘上相应数字按钮
↓↓
按下数字1~9按下数字0
根据提示输入数据退出
实现功能
是↓否
是否继续?
源代码:
创建目录:
classCreateFile{
CreateFile(){
try{
System.out.println("
wheretocreate?
"
+"
pleaseinputthepath:
);
Scanners=newScanner(System.in);
Stringpath=s.next();
Filefile=newFile(path);
if(file.exists()){
System.out.println("
pleaseinputthefilename!
"
+"
例如F:
/src/sb。
txt"
Stringname=s.next();
Filef=newFile(path+File.separator+name);
f.mkdir();
successtocreate!
}else
thedirectoryisn'
texist!
}catch(Exceptione){
e.printStackTrace();
}
}
}
删除目录:
classDeleteFile{
Filepath;
publicDeleteFile(Filepath){
this.path=path;
publicvoidDelete(Filepath){
File[]files=path.listFiles();
for(inti=0;
i<
files.length;
i++){
if(files[i].isDirectory()){
Delete(files[i]);
}else{
files[i].delete();
}
path.delete();
复制文件:
classCopyFile{
CopyFile(Stringsource,Stringtarget){
Filef1=newFile(source);
Filef2=newFile(target);
FileInputStreaminputFile=newFileInputStream(f1);
FileOutputStreamoutputFile=newFileOutputStream(f2);
byte[]b=newbyte[1024*10];
intvalue=0;
while((value=inputFile.read(b))!
=-1){
outputFile.write(b,0,value);
outputFile.flush();
outputFile.close();
inputFile.close();
复制目录:
classCopyDirectory{
publicvoidcopyFolder(StringoldPath,StringnewPath){
(newFile(newPath)).mkdirs();
Fileo=newFile(oldPath);
String[]file=o.list();
Filetemp=null;
for(inti=0;
file.length;
if(oldPath.endsWith(File.separator)){
temp=newFile(oldPath+file[i]);
}else{
temp=newFile(oldPath+File.separator+file[i]);
}
if(temp.isFile()){
FileInputStreaminputDir=newFileInputStream(temp);
FileOutputStreamoutputDir=newFileOutputStream(newPath
+"
/"
+(temp.getName()).toString());
byte[]b=newbyte[1024*10];
intvalue;
while((value=inputDir.read(b))!
outputDir.write(b,0,value);
}
outputDir.flush();
outputDir.close();
inputDir.close();
if(temp.isDirectory()){
copyFolder(oldPath+"
+file[i],newPath+"
+file[i]);
列出目录:
classListDirectory{
ListDirectory(Stringpath){
Filedf=newFile(path);
if(!
df.exists()||(!
df.isDirectory())){
Listfailed!
System.out
.println(path+"
/"
containsbelowdirectoriseorfiles"
String[]files=df.list();
System.out.println(files[i]);
进入目录:
classEnterDirectory{
EnterDirectory(Stringpath){
if(df.exists()){
已进入此目录!
}else{
此目录不存在!
重命名:
Filenamepath=newFile(s.next());
if(namepath.exists()){
System.out.println("
inputnewname"
Filenewname=newFile(s.next());
if(namepath.renameTo(newname)==true){
Successtorename!
fileexist"
加密解密文件:
publicvoidgetKey(StringstrKey){
KeyGenerator_generator=KeyGenerator.getInstance("
DES"
_generator.init(newSecureRandom(strKey.getBytes()));
this.key=_generator.generateKey();
_generator=null;