关于在配置文件中配置参数的问题

问题描述

现在有个需求,就是解析excel文件,然后倒入数据库。其他的都写好了,现在我想定义一个文件夹file,把写好的应用程序打包,执行bat文件的时候能自动的检测file目录下面的xls文件,从而遍历xls文件进行操作。现在的问题是这个file放在什么地方?在程序中怎么取到他的地址?public class IntegralBalanceToDB {public static void main(String args[]) { //怎么取到file目录的位置? .... }} 问题补充:主要是想问一下大家如果是你们如何实现file文件夹的读取,不是读取excel,这个已经用jxl实现了,现在想把这些excel放到一个文件夹下面,例如目录结果--交付件--ExcelToDB--ExcelToDB--execute.bat | |----lib-----ExcelToDB.jar | |----file----放置需要解析的excel文件 | | | | |--ExcelToDB_source--src---ExcelToDB.java(现在这里怎么取到打包发布以后的file目录) | |---lib

解决方案

String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); //获取jar路径String file = this.getClass().getProtectionDomain().getCodeSource().getLocation().getFile(); //获取jar文件名例如我放到桌面的jar包,获取到的路径如下:
解决方案二:
web项目的话使用 getClass().getResourceAsStream(filePath)
解决方案三:
可将其放在包外,用System.getProperty("user.dir");获取的是打完包的程序所在的位置,file目录此时用相对路径就可以了;也可将其放入包内,用Class类的public URL getResource(String name)方法返回当前类所在的方法
解决方案四:
poi读取可以吗// 构造 XSSFWorkbook 对象,path 传入文件路径XSSFWorkbook xwb = new XSSFWorkbook(path);// 读取第一章表格内容XSSFSheet sheet = xwb.getSheetAt(0);// 定义 row、cellXSSFRow row;String cell;// 循环输出表格中的内容for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) { // 通过 row.getCell(j).toString() 获取单元格内容, cell = row.getCell(j).toString(); System.out.print(cell + "t"); } System.out.println("");}
解决方案五:
public List<String> getFilePathList(File file) { List<String> filePathList = new ArrayList<String>(); File[] list = file.listFiles(); if (list != null) { for (File file2 : list) { if (file2.isDirectory()) { filePathList.addAll(getFilePathList(file2)); } else { if(file2.getPath().endWith(".xls")) { filePathList.add(file2.getPath()); count++; } } } } return filePathList; } 然后调用getFilePathList(new File("file文件夹的路径"))得到所有xls文件的绝对路径。后面执行你操作xls部分的逻辑即可。

时间: 2024-09-16 17:06:18

关于在配置文件中配置参数的问题的相关文章

asp.net-vs2012配置文件中配置了一个连接数据库的连接字符串运行后就出现以下几个错误

问题描述 vs2012配置文件中配置了一个连接数据库的连接字符串运行后就出现以下几个错误 我在vs2012配置文件中配置一个数据库的连接字符串,运行后就出现这几个错误 1.未能找到特性"type"的架构信息. 2.未能找到特性"value"的架构信息. 3.未能找到元素"defaultConnectionFactory"的架构信息. 4.未能找到元素"entityFramework"的架构信息. 5.未能找到元素"p

在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别?

问题描述 在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别? 在spring的配置文件中配置c3p0和在hibernate的配置文件中配置c3p0有什么区别? 我最近在学习如何配置struts2+spring+hibernate,其中数据库连接池使用c3p0,一开始在hibernate.cfg.xml中添加c3p0连接的信息如下: <property name="hibernate.connection.provider_class"

lmd-linux LMD在配置文件中配置的clam_av = 1 有怎样的作用?

问题描述 linux LMD在配置文件中配置的clam_av = 1 有怎样的作用? 在安装了LMD以后配置文件里发现了一个字段clam_av 不知道是啥意思

Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

25.集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager 25.1.2服务器准备 本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本: ü Vmware 11.

CXF客户端配置请求超时限制-SocketTimeoutException(Spring配置文件中配置和通过代码进行配置)

在用cxf  开发webservice应用时,客户端老报  java.net.SocketTimeoutException: Read timed out  原因为连接超时,google 参考链接  Spring下设置CXF的WebService客户端超时时长  http://ajava.org/course/open/16514.html  https://cwiki.apache.org/CXF20DOC/client-http-transport-including-ssl-support

详解Linux系统中配置静态路由的方法

  主机只有一块网卡的时候,不会涉及到默认路由和静态路由的问题.两块网卡时,也可以一块配置有网关(默认路由走这个网卡),另外一块只配置IP和掩码确认(该主机同网络的可以互通).不过在稍大型的.有多网段的环境里就需单独进行默认路由和静态路由的配置了. 一.需求 目前有如下的一个网络,主机有两个网卡,两个网段分别是是业务地址eth0和管理地址eth1. 业务地址段为:192.168.3.0/24段 管理地址段:10.212.52.0/24段 防火墙段:10.211.6.0/24段 现在的需求是,默认

在resin3.0中配置hibernate2.1.2连mysql

  在resin3.0中配置hibernate2.1.2连mysql 在resin3.0中配置hibernate2.1.2连mysql Author : hamal 约定: resin3 代表resin3.0的安装根目录 hibernate2 代表hibernate2.1.2的安装根目录 1.        在resin3下建立我们的web应用根,如resin3mydomain目录(mydomain的目录名可以随意取,之后在配置文件中配置即可) 2.        在resin3mydomain

在web.xml中配置多个filter是怎么执行的?

问题描述 如题:在web.xml中配置了两个或者多个的filter,他们的执行顺序是什么,是依次执行(也就是按顺序执行,配置在前的先执行,配置在后的后执行),还是怎么回事:如下代码: 这是公司一个项目的架构,我在研究的时候发现的,始终搞不明白:web.xml的部分配置文件: <!--配置的filter--> <filter><filter-name>struts2Filter</filter-name><filter-class>org.apac

01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置

 1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下: 2 EHCache与mybatis集成 EHCache是一种广泛使用java分布式缓存通用缓存,JavaEE中的一个轻量级的容器. EHCache集成是基于ehcache-core,没有任何其它第三方应用程序. 想使用EHCache到她们的应用程序的用户,必须下载EHCache的zip bund