《Java课程设计》
一。 本组课题
简易文件资源管理器
需求分析
- 查找文件功能:可以根据指定的目录名与待查找的文件,在指定目录中进行查找,并返回结果
- 实现文件的拷贝与粘贴功能
- 实现文本类文件(.txt, .java, .ini, .bat, )的预览功能(比如实现对前100行文本在某个小窗口中进行预览)
- 实现文件的重命名功能
- 实现对某个文件夹进行统计功能(如统计文件夹中文件数目)
在安卓系统上实现
本人任务
1. 对文件及文件夹进行拷贝和剪切的功能。
二. 总体设计(概要设计)
主要设计为Folder类和Filel类
Folder类
提供绝对路径为参数获取对象
可获得目录的各种信息
并提供格式化size数据的方法
Filel类
直接继承File类,简化设计
提供复制文件或为文件夹的方法
APP基于安卓API18
主Activiy继承于ListView直接显示根目录
视图使用Listview与继承自BaseAdapter的自定义适配器组合
适配器getview中使用convertView,holder静态类加快UI流畅性
三. 是西安功能的主要代码块
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class File1 extends File{
public File1(String path) {
super(path);
// TODO Auto-generated constructor stub
}
/**
* 复制选择
* @param destDir
* @param delscr
* @return
*/
public boolean copyTo(String destDir,boolean delscr){
File file = new File(super.getPath());
if(file.isDirectory())
return copyDirectory(super.getPath(), destDir,delscr);
else
return copyFile(super.getPath(), destDir,delscr);
}
/**
* 复制文件
* @param scrPath
* @param destDir
* @param delscr
* @return
*/
private boolean copyFile(String scrPath, String destDir,boolean delscr) {
boolean flag = false;
File file = new File(scrPath);
String filename =file.getName();
String destPath ;
if(destDir.equals("/")){
destPath = destDir+filename;
}
else{
destPath = destDir+"/"+filename;
}
File destFile = new File(destPath);
if(destFile.exists()&&destFile.isFile()){
System.out.println("目标目录下已有同名文件");
return false;
}
File newfile = new File(destPath);
try{
FileInputStream fis = new FileInputStream(scrPath);
FileOutputStream fos = new FileOutputStream(newfile);
byte[]buf =new byte[1024];
int c;
while((c=fis.read(buf))!=-1){
fos.write(buf,0,c);
}
fis.close();
fos.close();
flag=true;
}catch(IOException e){
}
if(flag){
System.out.println("复制成功");
}
if(delscr == true){
file.delete();
}
return flag;
}
/**
* 复制文件夹
* @param scrPath
* @param destDir
* @param delscr
* @return
*/
private boolean copyDirectory(String scrPath, String destDir,boolean delscr) {
boolean flag = false;
File scrFile = new File(scrPath);
String dirName = scrFile.getName();
String destPath ;
if(destDir.equals("/")){
destPath = destDir+dirName;
}
else{
destPath = destDir+"/"+dirName;
}
File[] files = scrFile.listFiles();
File desdir = new File(destPath);
if(desdir.exists()&&desdir.isDirectory()){
return false;
}
desdir.mkdir();
for(File f:files){
if(f.isDirectory()){
copyDirectory(f.getPath(),desdir.getPath(),delscr);
}
if(f.isFile()){
copyFile(f.getPath(),destPath,delscr);
flag = true;
}
}
if(delscr == true){
scrFile.delete();
}
return flag;
}
}
四. 功能运行的成功界面
《Java课程设计》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- Codeforces Round #428 (Div. 2) 题解
题目链接:http://codeforces.com/contest/839 A. Arya and Bran 题意:每天给你一点糖果,如果大于8个,就只能给8个,剩下的可以存起来,小于8个就可以全部 ...
- css3文字与字体样式
css3使用服务器端字体: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- JMeter网站测试分析
WEB类型: User Driver:以用户量作为衡量系统性能的主要指标的系统,典型如IM系统.企业 内部业务系统: TPS-Driver:以tps作为衡量系统性能的主要指标的系统,典型的如消息系统 ...
- Hadoop分布式集群搭建
layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...
- PHP魔术方法
魔术方法:两个下划线开头的格式. PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, ...
- 设计模式(8)--Decorator--装饰器模式--结构型
1.模式定义: 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 2.模式特点: 装饰模式能够实现动态的为对象添加功能,是从一个对象 ...
- Hive调优实践
1 文件格式的选择 ORC格式确实要比textFile要更适合于hive,查询速度会提高20-40%左右 例子1: youtube1的文件格式是TextFIle,youtube3的文件格式是orc h ...
- SQL用法笔记
1.更改当前记录以外的数据的xh自动加1(MySQL字段为int) String sql = "UPDATE t_readtext as tr SET xh = xh +1\n" ...
- JVM 调优总结
避免FullGC: 1.通过调整堆中新生代和幸存代大小,避免因为幸存代不足而让Minor GC后的对象进入老年代.每次Minor GC都有对象进入老年代会造成数次MinorGC后FullGC. 2.减 ...
- 【Ubuntu16]】ufw
Usage: ufw COMMAND Commands: enable enables the firewall 开启ufw防火墙 disable disables the firewall 禁用防火 ...