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文件的方法的更多相关文章

  1. java 读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  2. java读取TXT文件的方法

    java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...

  3. java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

    #java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...

  4. Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

  5. java读取txt文件内容

    package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...

  6. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  7. java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

    需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...

  8. Java读取txt文件

    package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...

  9. c++ 读取并解析excel文件方法

    用Cocos开发模型特效工具编辑器,跨Mac和windows,当中有个需求是读取并解析excel文件,但网上的查找的例子几乎都只能是在windows下面使用,再或者是命令行脚本之类的.于是,自己写了一 ...

随机推荐

  1. 【Java】学习路径55-练习:制作一个聊天室(多线程、UDP、双向传输数据)

    创建四个类,实现双向聊天的功能. 接收线程: import java.io.IOException; import java.net.*; public class ReceiveThread imp ...

  2. 《HelloGitHub》第 77 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  3. 【Android 逆向】ARM CPP 类对象

    #include <stdio.h> class aclass{ private: int m; char c; public: aclass(int i, char ch) { prin ...

  4. 全志H616基于官方外设开发-蜂鸣器

    #include <stdio.h> #include <wiringPi.h> #include <unistd.h> #define BEEP 0 //设置针脚 ...

  5. CentOS7使用yum方式安装Containerd

    # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-m ...

  6. ELK Stack 日志平台性能优化

    转载自: https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247487789&idx=1&sn=def0d8c2e ...

  7. python的注释、变量

    注释 注释是代码的解释型语言,不会影响代码执行,就是专门给程序员看的. 注释是很重要的代码组成部分! # 单行注释 ''' 多行注释 连续输入三个单引号 ''' """ ...

  8. POJ1639 Picnic Planning (限制入度最小生成树)

    节点1是有度数限制的,把节点1去掉,就会形成若干个连通块,在每个连通块内部求最小生成树(prim算法实现),并求出每个连通块与1相连的最短的边,这样形成了初始状态的生成树. 假设(1,x)这条边没在生 ...

  9. AdaBoost:自适应提升算法的原理及其实现

    AdaBoost:通过改变训练样本权重来学习多个弱分类器并线性组合成强分类器的Boosting算法. Boosting方法要解答的两个关键问题:一是在训练过程中如何改变训练样本的权重或者概率分布,二是 ...

  10. 基于纯前端类Excel表格控件实现在线损益表应用

    财务报表也称对外会计报表,是会计主体对外提供的反映企业或预算单位一定时期资金.利润状况的会计报表,由资产负债表.损益表.现金流量表或财务状况变动表.附表和附注构成.财务报表是财务报告的主要部分,不包括 ...