package auh.server;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* Structs 2 Web应用中的文件操作(复制和删除文件、目录,读取文本文件)
* @author 可可
* @param RootDir web的根路径,可以通过setRootDir设置,所有操作均相对与根路径进行的。
*/
import org.apache.struts2.ServletActionContext;
public class WebFile {
private String RootDir;
public WebFile(){
this.RootDir=ServletActionContext.getServletContext().getRealPath("/");
}
public String getRootDir() {
return RootDir;
}
public void setRootDir(String rootDir) {
RootDir = rootDir;
}
/**
* 创建多级目录
* @param ParentDir 为空时只创建subDir目录
* @param subDir ParentDir 不为空时以 / 开头,ParentDir 为空时为决定路径
* @return boolean 是否成功
*/
public boolean creatDirs(String ParentDir,String subDir)
{
if(ParentDir==""){
File f=new File(subDir);
if(!f.exists())f.mkdirs();
return true;
}
File aFile = new File(ParentDir);
if (aFile.exists())
{
File subFile = new File(ParentDir + subDir);
if (!subFile.exists())return subFile.mkdirs();
else return true;
}
else return false;
}
/**
* 删除目录包括目录中的文件
* @param dir 以 / 开头,相对于根路径的目录
* @return boolean 是否成功
*/
public boolean deleteDirs(String dir){
dir=RootDir+dir;
File file=new File(dir);
if(file.exists()){
String[] filelist=file.list();
for(int i=0;i<filelist.length;i++){
File f=new File(dir+"/"+filelist[i]);
if(f.exists())f.delete();
}
file.delete();
return true;
}
else return false;
}
/**
* 删除文件
* @param filename 以 / 开头,相对于根路径的文件
* @return boolean 是否成功
*/
public void deleteFile(String filename){
filename=RootDir+filename;
File file=new File(filename);
if(file.exists())file.delete();
}
/**
* 复制目录包括目录中的文件
* @param sdir 原始路径,以 / 开头,相对于根路径
* @param tdir 目标路径,以 / 开头,相对于根路径
* @return boolean 是否成功
*/
public boolean copyDirs(String sdir,String tdir){
String rsdir=RootDir+sdir;
String rtdir=RootDir+tdir;
creatDirs("",rtdir);
File file=new File(rsdir);
if(file.isDirectory()){
String[] filelist=file.list();
for(int i=0;i<filelist.length;i++)
copyFile(sdir+"/"+filelist[i],tdir+"/"+filelist[i]);
return true;
}
else return false;
}
/**
* 复制文件
* @param sfilename 源文件名,以 / 开头,相对于根路径
* @param tfilename 目标文件名,以 / 开头,相对于根路径
* @return boolean 是否成功
*/
public boolean copyFile(String sfilename,String tfilename){
sfilename=RootDir+sfilename;
tfilename=RootDir+tfilename;
try{
File sfile=new File(sfilename);
if(sfile.exists()){
File tfile=new File(tfilename);
FileInputStream freader=new FileInputStream(sfile);
FileOutputStream fwriter=new FileOutputStream(tfile);
byte[] buff=new byte[1024];
int len=0;
while((len=freader.read(buff))>0)
fwriter.write(buff,0,len);
freader.close();
fwriter.close();
}else return false;
}catch(IOException e){
System.out.println(e);
return false;
}
return true;
}
/**
* 读取文本文件
* @param encoding 文本文件的编码方式,例:utf-8
* @param filename 以 / 开头,相对于根路径的文件
* @return String 文件中的字符串
*/
public String readFile(String filename,String encoding){
File file=new File(RootDir+filename);
try{
FileInputStream freader=new FileInputStream(file);
int length=(int)file.length();
byte[] buffer=new byte[length];
freader.read(buffer);
String s=new String(buffer,encoding);
freader.close();
return s;
}catch(IOException e){
System.out.println(e);
return null;
}
}
}
分享到:
相关推荐
在IT行业中,文件上传是Web应用中常见的功能之一,特别是在数据管理和协作系统中。本教程将专注于使用Structs2和ExtJS实现多文件上传的功能,包括多选文件、进度条显示以及传输速度监控等特性。 Structs2是一个基于...
在“structs文件上传下载”这个主题中,我们将探讨Structs如何处理文件上传和下载操作。 文件上传是Web应用中常见的功能,它允许用户将本地计算机上的文件传输到服务器。在Structs中,我们可以利用ActionForm或...
Java Web Struts2框架是Java企业级开发中的一个重要组成部分,它提供了一种MVC(Model-View-Controller)设计模式的实现,使得开发者能够更高效地构建动态、可维护的Web应用程序。Struts2框架是对早期Struts1的升级...
Structs2是一个流行的Java框架,主要用于构建Web应用和服务。它提供了强大的MVC(Model-View-Controller)架构支持,使得开发者能够更高效地组织和管理代码。"structs2基本jar包"是Structs2框架的核心组件,包含了...
Structs2是Go语言中一个流行的MVC(Model-View-Controller)框架,用于构建高效、可维护的Web应用程序。本篇文章将深入探讨基于Structs2进行Web开发的知识点,帮助开发者提升在Web开发中的实力。 1. **Structs2框架...
"Structs2上传下载示例.txt"可能是包含代码示例的文本文件,演示了如何在实际项目中配置和使用Structs2的文件上传功能。通过这些示例,开发者可以学习如何创建上传表单、定义Action类以处理上传请求,以及如何处理...
在IT行业中,文件上传和下载是常见的功能需求,特别是在Web应用程序中。Structs2是一个流行的MVC(模型-视图-控制器)框架,用于构建Java Web应用。本项目标题为"structs2上传下载",显然它提供了一个完整的实现,...
而Structs作为一款MVC(Model-View-Controller)框架,它简化了Java Web应用的开发流程,提高了代码的可读性和可维护性。结合这两者,我们可以快速搭建出功能丰富的文件管理系统。 用户是系统的核心,该系统将用户...
这个"Structs2 Jar资源包"包含了77个jar文件,这些文件是Struts2框架的核心组件、插件和其他依赖库,用于实现完整的功能。 1. **Struts2核心框架**: Struts2的核心框架提供了一个处理HTTP请求和响应的基础架构。`...
在这个"Structs2 + Maven Demo项目"中,开发者旨在展示如何将Structs2框架与Maven相结合,以创建一个简单的Web应用。XML映射是Structs2中重要的部分,它负责定义控制器和视图之间的关系,使得请求能够被正确地路由到...
在IT行业中,基于Struts2和Hibernate的文件上传是一个常见的需求,特别是在开发Web应用程序时。Struts2是一个Java EE框架,用于构建MVC(模型-视图-控制器)架构的应用程序,而Hibernate则是一个强大的对象关系映射...
Structs2的核心理念是通过Action和Result来处理用户请求和响应,而配置文件(如struts.xml)则定义了这些Action的路由和行为。Structs2的拦截器机制允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限检查...
3. **Web应用结构**:`WEB-INF`目录下的`web.xml`,配置了Web应用的基本设置和Servlet容器的部署描述符。 4. **数据库相关**:可能包含`hbm.xml`文件(Hibernate的映射文件),以及SQL脚本,用于创建数据库表。 5. *...
在描述中提到,只需要将这五个JAR文件复制到`WEB-INF/lib`目录下,就足以启动一个基于Structs2的Web项目。`WEB-INF/lib`是Java Web应用的标准库目录,其中存放了所有应用程序依赖的第三方库。将Structs2的核心库放在...
在本项目"structs2+hibernate学生信息管理"中,我们主要关注的是使用Struts2框架与Hibernate ORM工具来构建一个简单的学生信息管理系统。这个项目对于初学者来说是一个很好的实践,它涵盖了Web开发中的关键技术和...
Structs2是一个流行的Java框架,主要用于构建Web应用程序。它提供了丰富的功能,使开发人员能够更高效、更便捷地创建复杂的业务逻辑和用户界面。在Java世界中,jar(Java Archive)文件是打包和分发库的标准方式,...
在Java Web开发中,Structs2和Servlet是两种常见的技术,它们都在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。这里我们将深入探讨Structs2与Servlet的差异,以及如何通过简单的入门程序来理解...
Structs2是一个基于Java开发的轻量级框架,主要用于构建Web应用程序。这个jar包集合包含了Structs2框架的全部7个核心组件,适用于版本2.1。Structs2以其强大的MVC(Model-View-Controller)设计模式和丰富的插件支持...
在这个"Structs2.0框架搭建代码"中,我们可以看到核心的源代码文件,用于构建一个基本的Structs2应用。 Structs2的核心概念包括Action、Interceptor(拦截器)、Layout(布局)和Freemarker模板引擎等。Action是...
总之,Struts2文件上传和下载是Web开发中必不可少的功能,涉及的技术点包括表单处理、文件流操作、服务器配置以及错误处理。通过理解和实践提供的源代码,开发者可以加深对Struts2框架的理解,提升其在实际项目中的...