当前位置:  编程技术>java/j2ee

java读取excel文件并复制(copy)文件到指定目录示例

    来源: 互联网  发布时间:2014-11-02

    本文导语:  代码如下:mport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apache.log4j.Logger;import org.apache.poi.hssf.us...

代码如下:

mport java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class DeployByExcel {
 private static Logger logger= Logger.getLogger(DeployByExcel.class);

 static final int BUFFER = 8192; 


 //Excel
 private HSSFWorkbook workbook ;

 /**
  * 读取Excel文件并将文件列表放到list中
  * @param sheetNumber
  * @param dir excel文件所在目录
  * @return
  * @throws FileNotFoundException
  * @throws IOException
  */
 public List getDatasInSheet(int sheetNumber,File dir) throws FileNotFoundException, IOException{

  File[] files = dir.listFiles(); 
  List result = new ArrayList();
        for(File f : files)
        {
         if(!f.getName().toLowerCase().endsWith(".xls"))
         {
          continue;
         }
         workbook = new HSSFWorkbook(new FileInputStream(f));

   //获得指定的表
   HSSFSheet sheet = workbook.getSheetAt(sheetNumber);
   //获得数据总行数
   int rowCount = sheet.getLastRowNum();
   logger.info("found excel rows count: " + rowCount);
   if (rowCount < 1) {
    return result;
   }
   //逐行读取数据
   for (int rowIndex = 4; rowIndex 1)
      result.add(str);
    }
   }
        }
  return result;
 }


 private void copy(String sourcePath,String destPath,List fileList,String webContent) throws IOException{
  int num =1 ;
  for (String str : fileList){
   str = str.replace(".java", ".class");
   if (str.indexOf("/")!=-1){

    if (str.indexOf("src")==0){
     str = str.replace("src", "WEB-INF/classes");
    }else if (str.toUpperCase().indexOf(webContent.toUpperCase())==0){
     str = str.replace(webContent+"/", "");
    }

    
    boolean f = copyFile(str,sourcePath,destPath);
    if(f)
    {
     logger.info("The file is:" + num);
     num ++;

     String fileName1 = str;
     int n = 1;
     while(fileName1.endsWith(".class"))
     {
      str = fileName1.replace(".class", "$" + n +".class");
      if(!copyFile(str,sourcePath,destPath))
      {
       break;
      }
      n ++;
     }
    }
   }
  }
 }
 /**
  * copy str to destPath
  *
  * @param str
  * @param sourcePath
  * @param destPath
  * @return boolean isFile return true;else return false;
  * @throws IOException
  */
 private boolean copyFile(String str,String sourcePath,String destPath) throws IOException
 {
  boolean f = false;
  String destFilePath = destPath+str;
  String sourceFilePath = sourcePath+str;
  File newDir = new File(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
  File sourceFile = new File(sourceFilePath.trim());
  if(!sourceFile.exists())
  {
   return f;
  }
  logger.info("dest:"+destFilePath+"     "+"source:"+sourceFilePath);
  File destFile = new File(destFilePath.trim());
  if (!newDir.exists()){
   newDir.mkdirs();
  }
  if(!sourceFile.isDirectory())
  {
   InputStream in=new FileInputStream(sourceFile);
   FileOutputStream out=new FileOutputStream(destFile);
   byte[] buffer=new byte[1024];
   int ins;
   while((ins=in.read(buffer))!=-1){
    out.write(buffer,0,ins);
   }
   in.close();
   out.flush();
   out.close();
   f = true;
  }
  return f;

 }
 /**
 * 获得单元格中的内容
 * @param cell
 * @return
 */
 protected Object getCellString(HSSFCell cell){
  Object result = null;
     if (cell != null) {
      int cellType = cell.getCellType();
      switch(cellType){
       case HSSFCell.CELL_TYPE_STRING :
        result = cell.getRichStringCellValue().getString();
        break;
       case HSSFCell.CELL_TYPE_NUMERIC:
        result=cell.getNumericCellValue();
        break;
       case HSSFCell.CELL_TYPE_FORMULA:
        result = cell.getNumericCellValue();
        break;
       case HSSFCell.CELL_TYPE_ERROR:
        result=null;
        break;
       case HSSFCell.CELL_TYPE_BOOLEAN:
        result=cell.getBooleanCellValue();
        break;
       case HSSFCell.CELL_TYPE_BLANK:
        result=null;
        break;
      }
     }
     return result;
 }
  

 /**
  *
  * @param args args[0]:Excel文件所在目录;args[1]:源目录(编译后的文件目录);args[2]:发布目录
  * @throws Exception
  */
 public static void main(String[] args) throws Exception {

  if(args == null || args.length 3 && args[3] != null && args[3].length() > 1) ? args[3] : "WebContent";
    deploy.copy(classPath, destPath, fileList, webContent);
    ///tmp/gboss /media/terry/doc/Project_ID5/gboss/WebContent/

 }

}


    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • JAVA编译的CLASS文件可以反编译为JAVA文件吗?
  • 保存java.sh文件时,多出一个java.sh~文件
  • 用什么工具可以把JAVA的.CLASS文件反编译成.JAVA文件??
  • 请问把.class文件反编译为.java文件的工具有什么???能恢复到原来的.java文件吗???
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • 急!送分求助,java程序中如何读取系统环境变量? iis7站长之家
  • java读取csv文件示例分享(java解析csv文件)
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • 请教:有没有把java编译好的.java和.class文件编译成各个平台下的可执行文件??.exe?着急着急
  • java文件操作之java写文件简单示例
  • java复制文件和java移动文件的示例分享
  • java读取文件内容的三种方法代码片断分享(java文件操作)
  • 编译前的java文件没有,只有class文件
  • 我用java编了一个程序,是多个java文件,属于一个包,需要联编,但我不会
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 我在jbuilder中新建一个servlet,源程序为java文件,是怎么从java到servler转换的?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 谁有办法用java执行于java.exe不在一个目录的class文件?
  • 怎样把CLASS文件转成JAVA文件
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java Servlet实现Session创建存取以及url重写代码示例
  • java 四舍五入使java保留2位小数示例讲解
  • java进行error捕获和处理示例(java异常捕获)
  • java去除集合中重复元素示例分享 java去除重复
  • java求三个数的最大值的示例分享
  • java生成字母数字组合的随机数示例 java生成随机数
  • java实现网页解析示例
  • java协变返回类型使用示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java中读取.txt和读取.ini文件的方式和命令是否一样
  • 请问在Java程序中能否直接读取ini文件,如何读取?
  • 高手帮忙:如何用java读取数据(从ftp服务器上一个文本文件)但不采用get的方式直接读取,打印数据内容(web方式)
  • 请问在Linux里,如何用JAVA读取内存里的PATH设置
  • 可以用Java读取Notes的数据么?急,定给分!!!
  • 有没有人晓得怎么用JAVA实现读取UTMP或WTMP等日志文件!!!!!!!!!!!!!
  • 哪里有用JAVA读取 MS-Excel文件的包?谢谢谢谢
  • java自动根据文件内容的编码来读取避免乱码
  • Java读取二维条码
  • 如何用JAVA读取Doc文档?(必给分)
  • 急!送分求助,java程序中如何读取系统环境变量?
  • 如何在java应用程序中读取键盘的输入?闪电给分。
  • 请问各位大虾: 如何用java读取一个xml文档
  • 请问如何用Java从数据库中读取媒体文件,如图片,mpeg 等
  • 如何读取java文件?
  • 谁有读取cad文件的java源程序?谢谢了!
  • 哪为做过读取PDF格式文件的JAVA程序
  • 用java读取位图
  • 笨苯问题:java类中如何读取xml中定义的属性信息。
  • java怎样读取数据库表中字段的数据类型?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3