package com.story.storyadmin.utils;
import lombok.extern.slf4j.Slf4j;
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
*
*/
@Slf4j
public class IOUtil {
private static String content = "",line=System.getProperty("line.separator");//换行相当于\n
private static List fileList = new ArrayList();
private static File tempFile = null;
private static final long KB = 1024;// KB
private static final long MB = KB * KB;// MB
private static final long GB = KB * MB;// GB
private static final int byt = 2048;
private static File f=new File("");
private static BASE64Encoder encoder = new BASE64Encoder();// 加密
private static BASE64Decoder decoder = new BASE64Decoder();// 解密
private static String webRootPath;
private static String rootClassPath;
/**
* 读文件流
* @param formPath 从哪里读取的文件路径
* @return
*/
public static String reader1(String formPath) {
FileReader read = null;
BufferedReader reader = null;
try {
read = new FileReader(new File(formPath));
reader = new BufferedReader(read);
StringBuffer buffer = new StringBuffer();
content = reader.readLine();
while (content != null) {
buffer.append(content).append(line);
content = reader.readLine();
}
return content = buffer.toString();//返回
} catch (Exception e) {
log.error("遇到错误",e);
} finally {
try {
if (reader != null)reader.close();
if (read != null)read.close();
} catch (Exception e) {
log.error("遇到错误",e);
}
}
return "";
}
/**
* InputStreamReader
* ByteArrayOutputStream
* ByteArrayInputStream
* @param formPath
* @return
*/
public static String reader3(String formPath){
String newName="";
try {
InputStream is=new FileInputStream(new File(formPath));
InputStreamReader reader=new InputStreamReader(is);
//不够大的时候读不出来全部内容来的,他不像available拿多所就读多少
char c[] = new char[is.available()];//1M=1024*1024,根据需求定
int len = reader.read(c);
content=new String(c, 0, len);
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(bout);
dout.writeUTF(content);
byte[] buff = bout.toByteArray();
ByteArrayInputStream bin = new ByteArrayInputStream(buff);
DataInputStream dis = new DataInputStream(bin);
newName = dis.readUTF();
bout.flush();
dout.flush();
bout.close();
dout.close();
dis.close();
} catch (Exception e) {
log.error("遇到错误",e);
}
return newName;
}
/**
* 写文件
* BufferedWriter
* BufferedReader
* @param formPath
* @param toPath
*/
public static boolean writer1(String formPath,String toPath){
Reader reader;
Writer writer;
boolean flag=true;
BufferedWriter buffWriter;
BufferedReader buffReader;
try {
reader=new FileReader(new File(formPath));
writer = new FileWriter(new File(toPath));//writer不能关闭
buffWriter=new BufferedWriter(writer);//这个写完可以关闭
buffReader=new BufferedReader(reader);
content=buffReader.readLine();
while(content!=null){
buffWriter.write(line+content);
content=buffReader.readLine();
buffWriter.flush();//只要用到缓冲区就flush//其实关闭了缓冲区,就是关闭缓冲区中流的对象. //写一次flush是为了防止停电就挂了~
}
reader.close();
buffReader.close();
buffWriter.close();
} catch (Exception e) {
log.error("遇到错误",e);
return false;
}
return flag;
}
/**
* 写文件
* @param formPath
* @param toPath
*/
public static boolean writer2(String formPath,String toPath){
Reader reader;
PrintWriter writer;
boolean flag=true;
BufferedWriter buffWriter;//此对象有换行newLine
BufferedReader buffReader;//为了提高效率,使用字符缓冲流BufferedReader
try {
reader=new FileReader(new File(formPath));
writer = new PrintWriter(new File(toPath));//writer不能关闭
buffWriter=new BufferedWriter(writer);//这个写完可以关闭
buffReader=new BufferedReader(reader);
content=buffReader.readLine();
while(content!=null){
buffWriter.write(line+content);
content=buffReader.readLine();
}
reader.close();
buffReader.close();
buffWriter.close();
} catch (Exception e) {
log.error("遇到错误",e);
return false;
}
return flag;
}
/**
* 写文件
* @param from
* @param to
*/
public static void writer3(String from, String to) {
try {
InputStream in = new FileInputStream(new File(from));
OutputStream out = new FileOutputStream(new File(to));
byte[] buff = new byte[in.available()];
int len;
while ((len = in.read(buff)) != -1) {
out.write(buff, 0, len);
}
in.close();
out.close();
} catch (Exception e) {
log.error("遇到错误",e);
}
}
/**
* 写文件
* @param from
* @param to
*/
public static void writer4(String from, String to) {
try {
InputStream in = new FileInputStream(new File(from));
OutputStream out = new FileOutputStream(new File(to));
byte[] buff = new byte[in.available()];
in.read(buff);
out.write(buff);
in.close();
out.close();
} catch (Exception e) {
log.error("遇到错误",e);
}
}
/**
* 写文件
* @param formPath
* @param toPath
* @return
*/
public static boolean writer5(String formPath,String toPath) {
try {
InputStream input=new FileInputStream(new File(formPath));
OutputStream output=new FileOutputStream(new File(toPath));
byte [] byf=new byte[1024*1024];//这里就不能填那么大啦 byte不同char,byte
int len;
while((len=input.read())!=-1)
{
output.write(byf, 0, len);
}
if(output!=null)output.close();
if(input!=null)input.close();
} catch (Exception e) {
log.error("遇到错误",e);
return false;
}
return true;
}
/**
* 文件处理
* @param content
* @param toPath
* @return
*/
public static boolean writer6(String content, String toPath) {
boolean flag = true;
try {
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(toPath), "utf-8"));//设置编码
out.write(line + content);
out.close();
} catch (Exception ex) {
log.erro
没有合适的资源?快使用搜索试试~ 我知道了~
基于Springboot+Shiro+jwt+Redis+Mybatis实现的有效期内Token刷新方案源码+项目说明.zip
共177个文件
java:154个
xml:13个
yml:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 185 浏览量
2022-12-20
22:27:21
上传
评论
收藏 184KB ZIP 举报
温馨提示
基于Springboot+Shiro+jwt+Redis+Mybatis实现的有效期内Token刷新方案源码+项目说明.zip 本项目为前后端分离的Web应用后端程序,采用技术框架如下: springboot v2.1.2.RELEASE shiro jwt redis mybatis-plus v3.1.2 包含 代码生成器 文档swagger2, http://localhost:9430/swagger-ui.html 使用jwt采用token有效期内刷新机制更新Token。 项目已实现功能包括: 用户登录 用户管理 角色管理 权限管理 菜单管理 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 也可作为课程设计、期末大作业。包含:项目源码、数据库脚本、项目说明等,该项目可以直接作为毕设使用。 也可以用来学习参考借鉴!
资源推荐
资源详情
资源评论
收起资源包目录
基于Springboot+Shiro+jwt+Redis+Mybatis实现的有效期内Token刷新方案源码+项目说明.zip (177个子文件)
test.ftl 264B
welcome.ftl 159B
.gitignore 303B
IOUtil.java 34KB
HttpClientUtils.java 27KB
JedisUtils.java 16KB
UserServiceImpl.java 12KB
DateExpressionUtil.java 10KB
FileExtendUtils.java 8KB
JwtFilter.java 8KB
ShiroKit.java 7KB
ResourceServiceImpl.java 7KB
DateUtils.java 6KB
CodeGenerator.java 6KB
ScheduleJobController.java 6KB
UserController.java 6KB
StringUtils.java 5KB
MailServiceImpl.java 5KB
AnnotationUtils.java 5KB
AttServiceImpl.java 5KB
StorySchedulerService.java 5KB
AuthorityServiceImpl.java 4KB
ShiroConfig.java 4KB
TodoController.java 4KB
RoleColtroller.java 4KB
DictController.java 4KB
RoleServiceImpl.java 4KB
DataBaseUtils.java 4KB
StoryMongoTemplate.java 4KB
BackupServiceImpl.java 3KB
ScheduleJobServiceImpl.java 3KB
SSLContextSecurity.java 3KB
ExceptionController.java 3KB
ShiroRealm.java 3KB
BackupController.java 3KB
StorySysLogAspect.java 3KB
AuthorityController.java 3KB
ResourceController.java 3KB
LoginLogController.java 3KB
DefaultFileResolver.java 3KB
ShiroCache.java 3KB
SystemLogoutFilter.java 2KB
AttController.java 2KB
MultipartHandlerInterceptor.java 2KB
RoleAuthorityServiceImpl.java 2KB
SysLogService.java 2KB
MultipartAspect.java 2KB
CookiesUtil.java 2KB
JwtUtil.java 2KB
SwaggerCofing.java 2KB
RedisCacheConfig.java 2KB
SysLogController.java 2KB
SyncCacheServiceImpl.java 2KB
AttService.java 2KB
StoryAdminApplication.java 2KB
MultipartRequestWrapper.java 2KB
Result.java 2KB
StoryJobListener.java 2KB
MultipartContextHolder.java 2KB
MultipartUploadConfig.java 2KB
StorageServiceImpl.java 2KB
Todo.java 2KB
StoryMongoPageable.java 2KB
ScheduleJob.java 2KB
Resource.java 2KB
Constants.java 1KB
ScheduleJobStarter.java 1KB
SysLog.java 1KB
SchedulerConfig.java 1KB
UserService.java 1KB
StoryJobFactory.java 1KB
ExceptionUtils.java 1KB
User.java 1KB
Authority.java 1KB
RoleAuthority.java 1KB
PubController.java 1KB
DictServiceImpl.java 1KB
UserRole.java 1KB
UserContextFilter.java 1KB
Dict.java 1KB
Backup.java 1KB
MailService.java 1KB
Role.java 1KB
LoginLog.java 1KB
IPUtils.java 1KB
ScheduleJobService.java 1KB
Att.java 1KB
CorsConfig.java 1KB
DefaultFileArchiveStrategy.java 1KB
MongoConfig.java 1KB
StoryServiceException.java 1012B
SecurityConsts.java 962B
UserMapper.java 961B
RoleService.java 932B
FileSlot.java 896B
ResourceNode.java 869B
RoleAuthorityService.java 809B
RoleAuthorityMapper.java 802B
AuthorityNode.java 785B
ResourceService.java 771B
共 177 条
- 1
- 2
资源评论
- zhangshengnan012024-05-29资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- shi.ming2023-03-07资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
- Theshy0012023-03-02果断支持这个资源,资源解决了当前遇到的问题,给了新的灵感,感谢分享~
onnxrun
- 粉丝: 9050
- 资源: 4655
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- new casting new casting
- WhisperDesktop和medium模型(分卷压缩文件 2/2)
- 2024-蓝桥杯(C++)资料整理,练习题,真题,省赛国赛等等
- yolov8的概要介绍与分析
- IMG_3184.PNG
- 多投影机变形系统:Multi Projector Warp System 3.3.0
- docker的概要介绍与分析
- python毕业设计基于django和机器学习算法二型糖尿病预测系统源码
- linux-headers-4.4.0-122-generic-4.4.0-122.146-amd64.deb
- linux-headers-4.4.0-121-generic-4.4.0-121.145-amd64.deb
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功