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下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...
随机推荐
- 关于stm32f10xRB系列的PB5和PB12外设冲突问题
上周在公司做了一个项目,调试一个mcu,本以为很简单的调试一下裸机驱动,但是调试过程中遇到了一些问题让我觉得比较有意思,记录一下. 1.关于stm32的SMBUS功能的介绍 由于笔者也没有玩过 ...
- 实时降噪(Real-time Denoising):Spatio-Temporal Filtering
目录 空间滤波(Spatial Filtering) 基于距离的高斯滤波 双边滤波(Bilateral filtering) 联合双边滤波(Joint Bilateral filtering)[201 ...
- 【IDEA】IDEA打开欢迎页面
概述 IDEA在默认情况下,会进入最后一个项目.如果项目比较大的话会加载的比较久,这个就比较烦人了,目前我觉得最好的办法就是在设置中直接进入欢迎页面. 解决方案 ① 进入设置 ② Appearance ...
- AtCoder Beginner Contest 260 (D-E)
AtCoder Beginner Contest 260 - AtCoder D - Draw Your Cards 题意:N张卡牌数字 1-n,以某种顺序排放,每次拿一张,如果这一张比前面某一张小( ...
- Windows平台Unity3d播放多路RTMP或RTSP流
好多开发者在做AR.VR或者教育类产品时,苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器,如果基于Unity3d完全重新开发一个播放器,代价大.而且周期长,不适合快速出产 ...
- 从Spring中学到的【1】--读懂继承链
最近看了一些 Spring 源码,发现源码分析的文章很多,而底层思想分析的文章比较少,这个系列文章准备总结一下Spring中给我的启示,包括设计模式思想.SOLID设计原则等,涉及一些编程的基本原则, ...
- 一文了解 Java 中的构造器
摘要:Java 也采用了构造器,并且还提供了一个垃圾收集器(garbage collector),当不再使用内存资源的时候,垃圾收集器会自动将其释放. 本文分享自华为云社区<一文带你了解 Jav ...
- kali2020.1修改root密码,以最高权限登录系统
普通用户权限登录系统 sodu su切换为root权限 passwd root 按提示输入密码 再次输入密码 更新密码 右上角点切换用户 root/xxxx 更改成功,下面公布操图片
- centos系统安装MySQL8
使用yum仓库安装MySQL8 1.查看centos系统版本 # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 2.下载并安 ...
- 安装krew
地址:https://krew.sigs.k8s.io/docs/user-guide/setup/install/ macOS/Linux Bash or ZSH shells 确保已安装git 2 ...