Java读取txt文件、excel文件的方法
Java读取txt文件、excel文件的方法
1.读取txt文件
public static String getFileContent(String filePath,String charset){//filePath为文件路径,charset为字符编码。通常使用UTF-8
File file = new File(filePath);
BufferedReader reader = null;
String tempString = null;
int line =1;
StringBuffer str = new StringBuffer();
try {
log.error("以行为单位读取文件内容,一次读一整行:");
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), charset);
reader = new BufferedReader(isr);
while ((tempString = reader.readLine()) != null) {
//log.info("Line"+ line + ":" +tempString);
str.append(tempString + "\r\n");
line ++ ;
}
reader.close();
} catch (FileNotFoundException e) {
log.error("文件不存在:",e);
} catch (IOException e) {
// TODO Auto-generated catch block
log.error("文件读取异常:",e);
}finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
log.error("文件读取异常:",e);
}
}
}
System.out.println(str.toString());
return str.toString();
}
读取的数据为一行一行的字符串,可以使用String接收,使用split切分,获取自己需要的数据,举例如下:
String response = FileHelper.getFileContent(fileUrl,"UTF-8");
if(!StringUtil.isEmptyStr(response)){
String[] sz = response.split("\\n");
Map<String,Object> statementMap = null;
List<Map<String,Object>> statementList = new ArrayList<Map<String,Object>>();
for (int i = 0; i < sz.length; i++){
statementMap = new HashMap<String,Object>();
String[] statement = sz[i].split("\\|\\|\\|",-1);
String account = statement[0];
String figer = statement[1];
String number = statement[2];
String proName = statement[3];
String expTime = statement[4];
statementMap.put("account", account);
statementMap.put("figer", figer);
statementMap.put("number", number);
statementMap.put("proName", proName);
statementMap.put("expTime", expTime);
statementList.add(statementMap);
}
resultMap.put("list", statementList);
2.读取excel文件
/*
* 获取excel某列数据方法
*/
public static List<String> readExcel(String filePath){
File file = new File(filePath);
List<String> headList = new ArrayList<>();
InputStream in = null;
try {
in = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(in);
XSSFSheet sheet = wb.getSheetAt(0); //获取第一张工作表
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
XSSFRow row = sheet.getRow(sheet.getFirstRowNum());//判断表行是否为空
if (null == row){//表空,直接返回
return headList;
}
for (int i = firstRowNum + 1; i <= lastRowNum; i++) {//遍历行,第一行为表头,跳过
row = sheet.getRow(i);
XSSFCell cell = row.getCell(0);//取每行的第一列数据,可根据需要修改或者遍历
if (StrHelper.isNotEmpty(cell.getStringCellValue().trim())){
headList.add(cell.getStringCellValue().trim());
System.out.println(cell.getStringCellValue().trim());
}
}
in.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(in != null){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return headList;
}
读取的数据为String数组,可以使用List接收,获取自己需要的数据,举例如下:
List<String> response = FileHelper.readExcel(fileUrl);
Java读取txt文件、excel文件的方法的更多相关文章
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
- Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案
注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...
- java读取txt文件内容
package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- c++ 读取并解析excel文件方法
用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...
随机推荐
- 面向对象06---static关键字
public class Preson { { System.out.println("匿名代码块");// 2 } static { System.out.println(&qu ...
- Spring 14: Spring + MyBatis初步整合开发
SM整合步骤 预期项目结构 新建数据库和数据表 springuser.sql脚本如下 create database ssm; use ssm; create table users( userid ...
- Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发
一.REST简介 REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格 当我们想表示一个网络资源的时候,可以使用两种方式: 传统风格资源描 ...
- openstack中Keystone组件简解
一.Keystone服务概述 在Openstack框架中,keystone(Openstack Identity Service)的功能是负责验证身份.校验服务规则和发布服务令牌的,它实现了Opens ...
- RT-Thread Studio增加软件包操作
RT-Thread Studio增加软件包操作 1. 在本地中完成如下操作 打开RTthread Studio的安装目录 在当前目录下找到env的目录 在env的目录下找到要添加软件包的分类文件夹 本 ...
- KingbaseES lag 和 lead 函数
1.简介 lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤. 2 ...
- git stash总结
git stash 1. git stash save "message" 执行存储,并添加备注信息(直接git stash 也可以,但没有备注信息) 2. git stash ...
- Java开发学习(三十四)----Maven私服(二)本地仓库访问私服配置与私服资源上传下载
一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码 私服中的仓库很多,Maven最终要把资源 ...
- Kubernetes 多租户:多租户介绍
多租户集群由多个用户和/或工作负载共享,这些用户和/或工作负载被称为"租户".多租户集群的运营方必须将租户彼此隔离,以最大限度地减少被盗用的租户或恶意租户可能对集群和其他租户造成的 ...
- Elasticsearch准实时索引实现(数据写入到es分片并存储到文件中的过程)
溢写到文件系统缓存 当数据写入到ES分片时,会首先写入到内存中,然后通过内存的buffer生成一个segment,并刷到文件系统缓存中,数据可以被检索(注意不是直接刷到磁盘) ES中默认1秒,refr ...