package com.demo.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.nio.channels.FileChannel;
import java.text.DecimalFormat;
import java.util.UUID;
import java.util.zip.GZIPOutputStream;
public class FileUtils {
/**
* 格式化文件大小,根据文件大小不同使用不同单位
* @param size 文件大小
* @return 字符串形式的大小,包含单位(B,KB,MB,GB,TB,PB)
*/
public static String formatFileSize(long size) {
DecimalFormat formater = new DecimalFormat("####.00");
if (size < 1024L) {
return size + "B";
} else if (size < 1048576L) {
return formater.format(size / 1024f) + "KB";
} else if (size < 1073741824L) {
return formater.format(size / 1048576f) + "MB";
} else if (size < 1099511627776L) {
return formater.format(size / 1073741824f) + "GB";
} else if (size < 1125899906842624L) {
return formater.format(size / 1099511627776f) + "TB";
} else if (size < 1152921504606846976L) {
return formater.format(size / 1125899906842624f) + "PB";
}
return "size: out of range";
}
/**
* 从路径中获取文件名,包含扩展名
* @param path 路径
* @return 如果所传参数是合法路径,截取文件名,如果不是返回原值
*/
public static String getFileName(String path) {
if (path != null && (path.contains("/")||path.contains("\\"))) {
String fileName = path.trim();
int beginIndex;
if ((beginIndex=fileName.lastIndexOf("\\")) != -1) {
fileName = fileName.substring(beginIndex+1);
}
if ((beginIndex=fileName.lastIndexOf("/")) != -1) {
fileName = fileName.substring(beginIndex+1);
}
return fileName;
}
return path;
}
/**
* 从路径中获取文件名,不包含扩展名
* @param path 路径
* @return 如果所传参数是合法路径,截取文件名,如果不是返回原值
*/
public static String getFileNameWithoutSuffix(String path) {
if (path != null && (path.contains("/")||path.contains("\\"))) {
String fileName = path.trim();
int beginIndex;
if ((beginIndex=fileName.lastIndexOf("\\")) != -1) {
fileName = fileName.substring(beginIndex+1);
}
if ((beginIndex=fileName.lastIndexOf("/")) != -1) {
fileName = fileName.substring(beginIndex+1);
}
return deleteSuffix(fileName);
}
return deleteSuffix(path);
}
/**
* 获取扩展名
* @param s 路径或后缀
* @return 不存在后缀时返回null
*/
public static String getSuffix(String s) {
if (s.contains(".")) {
return s.substring(s.lastIndexOf("."));
}
return null;
}
/**
* 返回去掉扩展名的文件名
*/
public static String deleteSuffix(String fileName) {
if (fileName.contains(".")) {
fileName = fileName.substring(0, fileName.lastIndexOf("."));
}
return fileName;
}
/**
* 检查是否有同名文件,有则在自动在文件名后加当前时间的毫秒值
*/
public static File checkAndRename(File target) {
if (target.exists()) {
String fileName = target.getName();
if (fileName.contains(".")) {
String sub = fileName.substring(0, fileName.lastIndexOf("."));
fileName = fileName.replace(sub, sub + "_" + System.currentTimeMillis());
} else {
fileName = fileName+"_"+ System.currentTimeMillis();
}
return new File(target.getParent(), fileName);
}
return target;
}
/**
* 移动文件或文件夹
* @param src 要移动的文件或文件夹
* @param target 目标文件或文件夹。类型需与源相同,如源为文件,则目标也必须是文件
* @param replace 当有重名文件时是否替换。传false时,自动在原文件名后加上当前时间的毫秒值
* @return 移动成功返回true,否则返回false
*/
public static boolean moveFile(File src, File target, boolean replace) {
if (src == null || !src.exists() || target == null) {
return false;
}
if (!replace) {
target = checkAndRename(target);
}
copy(src, target);
return compareAndDeleteSrc(src, target);
}
private static boolean compareAndDeleteSrc(File src, File target) {
//如果文件存在,并且大小与源文件相等,则写入成功,删除源文件
if (src.isFile()) {
if (target.exists() && target.length() == src.length()) {
src.delete();
return true;
}
} else {
if (getDirSize(src) == getDirSize(target)) {
deleteDir(src, true);
return true;
}
}
return false;
}
/**
* 移动文件或文件夹
* @param src 要移动的文件或文件夹
* @param target 目标文件或文件夹。类型需与源相同,如源为文件,则目标也必须是文件
* @param replace 当有重名文件时是否替换。传false时,自动在原文件名后加上当前时间的毫秒值
* @return 移动成功返回true,否则返回false
*/
public static boolean moveFileFit(File src, File target, boolean replace) {
if (src == null || !src.exists() || target == null) {
return false;
}
if (!replace) {
target = checkAndRename(target);
}
copyFit(src, target);
//如果文件存在,并且大小与源文件相等,则写入成功,删除源文件
return compareAndDeleteSrc(src, target);
}
/**
* 去掉字符串中重复部分字符串
* @param dup 重复部分字符串
* @param strs 要去重的字符串
* @return 按参数先后顺序返回一个字符串数组
*/
public static String[] removeDuplicate(String dup, String... strs) {
for (int i = 0; i < strs.length; i++) {
if (strs[i] != null) {
strs[i] = strs[i].replaceAll(dup+"+", "");
}
}
return strs;
}
/**
* 获取随机UUID文件名
* @param fileName 原文件名
* @return 生成的文件名
*/
public static String generateRandonFileName(String fileName) {
// 获得扩展名
int beginIndex = fileName.lastIndexOf(".");
String ext = "";
if (beginIndex != -1) {
ext = fileName.substring(beginIndex);
}
return UUID.randomUUID().toString() + ext;
}
/**
* 删除文件夹
* @param dir 文件夹
* @param includeSelf 是否包括本身
*/
public static void deleteDir(File dir, boolean includeSelf) {
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
deleteDir(f, true);
} else {
f.delete();
}
}
}
if (includeSelf)
dir.delete();
}
/**
* 删除文件内所有文件,不包含文件夹
* @param dir 文件夹
*/
public static void deleteAllFiles(File dir) {
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
if (f.isD
没有合适的资源?快使用搜索试试~ 我知道了~
基于servlet+jsp的电影购票系统客户端+服务端源码.zip
共346个文件
class:94个
java:91个
jsp:29个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 42 浏览量
2024-01-11
10:11:38
上传
评论
收藏 4.49MB ZIP 举报
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip基于servlet+jsp的电影购票系统客户端+服务端源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于servlet+jsp的电影购票系统客户端+服务端源码.zip (346个子文件)
CharacterParser.class 12KB
FileUtils.class 10KB
MovieMgrServlet.class 8KB
OrderDaoImpl.class 7KB
Utils.class 6KB
UserTicketServlet.class 6KB
GenerateOrderServlet.class 6KB
PlanServiceImpl.class 5KB
DataSourceMgr.class 5KB
PlanMgrServlet.class 5KB
DateUtils.class 5KB
EvaluateMgrServlet.class 5KB
WriteEvaluateServlet.class 5KB
OrderMgrServlet.class 5KB
UserServiceImpl.class 5KB
MovieSessionServlet.class 4KB
PlanDaoImpl.class 4KB
BaseDao.class 4KB
SeatServlet.class 4KB
MoviceServiceImpl.class 4KB
EvaluateDaoImpl.class 4KB
ValicateImgServlet.class 4KB
UserDaoImpl.class 4KB
HallMgrServlet.class 3KB
RegisterServlet.class 3KB
MovieDetailServlet.class 3KB
MovieDaoImpl.class 3KB
Ticket.class 3KB
UserMgrServlet.class 3KB
LoginServlet.class 3KB
SalesMgrServlet.class 3KB
PayServlet.class 3KB
EncodingFilter$MyHttpServletRequest.class 3KB
HallServiceImpl.class 3KB
ChangePwdServlet.class 3KB
AdminLoginServlet.class 3KB
MD5Utils.class 3KB
UpdateInfoServlet.class 3KB
Movie.class 3KB
DaoInitializer.class 2KB
HomeServlet.class 2KB
OrderServiceImpl.class 2KB
PicUtils.class 2KB
ReplyDaoImpl.class 2KB
HallDaoImpl.class 2KB
EncodingFilter.class 2KB
AdminLoginFilter.class 2KB
UserLoginFilter.class 2KB
BaseFactory.class 2KB
Plan.class 2KB
GetImageServlet.class 2KB
EvaluateServiceImpl.class 2KB
User.class 2KB
Order.class 2KB
AdminDaoImpl.class 2KB
JspFileFilter.class 2KB
BaseFactory$1.class 2KB
IOUtils.class 2KB
Hall.class 2KB
LogoutServlet.class 2KB
MovieSession.class 2KB
AdminLogoutServlet.class 2KB
Evaluate.class 1KB
Reply.class 1KB
AdminServiceImpl.class 1KB
OrderDao.class 1KB
MovieDao.class 1KB
UserDao.class 1KB
UserInfoServlet.class 1KB
PlanDao.class 1KB
EvaluateDao.class 1KB
DataSourceMgr$1.class 1KB
PropertyUtils.class 1KB
InitListener.class 1KB
UserService.class 996B
PlanService.class 937B
Sale.class 930B
BaseServlet.class 911B
ReplyServiceImpl.class 904B
HallDao.class 868B
OrderService.class 856B
ReplyDao.class 848B
MoviceService.class 752B
AdminDao.class 750B
Seat.class 717B
EvaluateService.class 678B
MyException.class 504B
HallService.class 489B
Transaction.class 395B
AdminService.class 365B
Admin.class 348B
ReplyService.class 314B
Dao.class 252B
Service.class 112B
.classpath 1KB
org.eclipse.wst.common.component 479B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 123KB
bootstrap.min.css 100KB
gsdk.css 62KB
共 346 条
- 1
- 2
- 3
- 4
资源评论
土豆片片
- 粉丝: 1852
- 资源: 5869
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功