`
xjk2131650
  • 浏览: 58158 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

Structs 2 Web应用中的文件操作(复制和删除文件、目录,读取文本文件)

阅读更多

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; 
   }
}
}
 
 
0
1
分享到:
评论

相关推荐

    Structs2+ExtJs多文件上传,多选文件加入列表

    在IT行业中,文件上传是Web应用中常见的功能之一,特别是在数据管理和协作系统中。本教程将专注于使用Structs2和ExtJS实现多文件上传的功能,包括多选文件、进度条显示以及传输速度监控等特性。 Structs2是一个基于...

    structs文件上传下载

    在“structs文件上传下载”这个主题中,我们将探讨Structs如何处理文件上传和下载操作。 文件上传是Web应用中常见的功能,它允许用户将本地计算机上的文件传输到服务器。在Structs中,我们可以利用ActionForm或...

    Java Web Structs2开发

    Java Web Struts2框架是Java企业级开发中的一个重要组成部分,它提供了一种MVC(Model-View-Controller)设计模式的实现,使得开发者能够更高效地构建动态、可维护的Web应用程序。Struts2框架是对早期Struts1的升级...

    structs2基本jar包

    Structs2是一个流行的Java框架,主要用于构建Web应用和服务。它提供了强大的MVC(Model-View-Controller)架构支持,使得开发者能够更高效地组织和管理代码。"structs2基本jar包"是Structs2框架的核心组件,包含了...

    web开发实力 基于 structs2的开发

    Structs2是Go语言中一个流行的MVC(Model-View-Controller)框架,用于构建高效、可维护的Web应用程序。本篇文章将深入探讨基于Structs2进行Web开发的知识点,帮助开发者提升在Web开发中的实力。 1. **Structs2框架...

    structs2 上传讲解

    "Structs2上传下载示例.txt"可能是包含代码示例的文本文件,演示了如何在实际项目中配置和使用Structs2的文件上传功能。通过这些示例,开发者可以学习如何创建上传表单、定义Action类以处理上传请求,以及如何处理...

    structs2上传下载

    在IT行业中,文件上传和下载是常见的功能需求,特别是在Web应用程序中。Structs2是一个流行的MVC(模型-视图-控制器)框架,用于构建Java Web应用。本项目标题为"structs2上传下载",显然它提供了一个完整的实现,...

    网上文件管理系统(Eclipse+Structs)

    而Structs作为一款MVC(Model-View-Controller)框架,它简化了Java Web应用的开发流程,提高了代码的可读性和可维护性。结合这两者,我们可以快速搭建出功能丰富的文件管理系统。 用户是系统的核心,该系统将用户...

    structs2 jar资源包

    这个"Structs2 Jar资源包"包含了77个jar文件,这些文件是Struts2框架的核心组件、插件和其他依赖库,用于实现完整的功能。 1. **Struts2核心框架**: Struts2的核心框架提供了一个处理HTTP请求和响应的基础架构。`...

    structs2 + maven demo项目

    在这个"Structs2 + Maven Demo项目"中,开发者旨在展示如何将Structs2框架与Maven相结合,以创建一个简单的Web应用。XML映射是Structs2中重要的部分,它负责定义控制器和视图之间的关系,使得请求能够被正确地路由到...

    基于structs+hibernate 文件上传

    在IT行业中,基于Struts2和Hibernate的文件上传是一个常见的需求,特别是在开发Web应用程序时。Struts2是一个Java EE框架,用于构建MVC(模型-视图-控制器)架构的应用程序,而Hibernate则是一个强大的对象关系映射...

    jsp自定义标签,structs2 JUNIT,structs2自定义拦截器

    Structs2的核心理念是通过Action和Result来处理用户请求和响应,而配置文件(如struts.xml)则定义了这些Action的路由和行为。Structs2的拦截器机制允许开发者在Action执行前后插入自定义逻辑,如日志记录、权限检查...

    Spring2.5+Structs2+Hibernate3.3框架例子

    3. **Web应用结构**:`WEB-INF`目录下的`web.xml`,配置了Web应用的基本设置和Servlet容器的部署描述符。 4. **数据库相关**:可能包含`hbm.xml`文件(Hibernate的映射文件),以及SQL脚本,用于创建数据库表。 5. *...

    structs2_base_jar

    在描述中提到,只需要将这五个JAR文件复制到`WEB-INF/lib`目录下,就足以启动一个基于Structs2的Web项目。`WEB-INF/lib`是Java Web应用的标准库目录,其中存放了所有应用程序依赖的第三方库。将Structs2的核心库放在...

    structs2+hibernate学生信息管理

    在本项目"structs2+hibernate学生信息管理"中,我们主要关注的是使用Struts2框架与Hibernate ORM工具来构建一个简单的学生信息管理系统。这个项目对于初学者来说是一个很好的实践,它涵盖了Web开发中的关键技术和...

    structs2 jar包

    Structs2是一个流行的Java框架,主要用于构建Web应用程序。它提供了丰富的功能,使开发人员能够更高效、更便捷地创建复杂的业务逻辑和用户界面。在Java世界中,jar(Java Archive)文件是打包和分发库的标准方式,...

    Structs2 vs Servlet

    在Java Web开发中,Structs2和Servlet是两种常见的技术,它们都在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。这里我们将深入探讨Structs2与Servlet的差异,以及如何通过简单的入门程序来理解...

    Structs2 jar包

    Structs2是一个基于Java开发的轻量级框架,主要用于构建Web应用程序。这个jar包集合包含了Structs2框架的全部7个核心组件,适用于版本2.1。Structs2以其强大的MVC(Model-View-Controller)设计模式和丰富的插件支持...

    Structs2.0框架搭建代码

    在这个"Structs2.0框架搭建代码"中,我们可以看到核心的源代码文件,用于构建一个基本的Structs2应用。 Structs2的核心概念包括Action、Interceptor(拦截器)、Layout(布局)和Freemarker模板引擎等。Action是...

    struts2文件上传下载源代码

    总之,Struts2文件上传和下载是Web开发中必不可少的功能,涉及的技术点包括表单处理、文件流操作、服务器配置以及错误处理。通过理解和实践提供的源代码,开发者可以加深对Struts2框架的理解,提升其在实际项目中的...

Global site tag (gtag.js) - Google Analytics