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. React报错之Parameter 'props' implicitly has an 'any' type

    正文从这开始~ 总览 当我们没有为函数组件或者类组件的props声明类型,或忘记为React安装类型声明文件时,会产生"Parameter 'props' implicitly has an ...

  2. 第九十七篇:CSS的选择器及优先级

    好家伙,来补一点关于CSS的基础 1.id选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式 使用#号来定义样式 2.class选择器 class 选择器用于描述一组元素的样式 ...

  3. 第九十一篇:Vue 具名插槽作用域

    好家伙, 1.作用域插槽 插槽在定义的时候,可以定义一些属性,便于在父组件中使用 来看看代码: Article.vue组件中: <template> <div class=" ...

  4. mysql8.0及以上修改Root密码

    ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#' //1.不需要flush privileges来刷新权限. //2.密码要包含大写字母,小 ...

  5. LibTorch 自动微分

    得益于反向传播算法,神经网络计算导数时非常方便,下面代码中演示如何使用LibTorch进行自动微分求导. 进行自动微分运算需要调用函数 torch::autograd::grad( outputs, ...

  6. Java中一些必须要知道的东西

    直接打印数组名称,得到的是数组对应的内存地址--哈希值.

  7. 企业微信报警中关于markdown的用法

    官方文档地址:https://open.work.weixin.qq.com/api/doc/90002/90151/90853#markdown消息 请求方式:POST(HTTPS) 请求地址: h ...

  8. [基础] BS/CS 区别 Http/Https 区别 中间件请求

    BS和CS的区别:   1.BS结构:Browser-Server-从浏览器到服务器,浏览器打开的所有内容都属于BS(三大主流浏览器Safari.Chrome和Firefo)   2.CS结构:Cli ...

  9. 通过js实现随机生成图片

    这次给大家分享一个通过js向HTML添加便签,实现随机代码生成的案例,代码已经放在下方,这里我在下面准备了50张图片,但是没有放在博文中,如果读者想要练习,可以自己下载一些图片,建议下载的多一些. & ...

  10. H5与APP的交互框架(WebViewJavascriptBridge)

    基本原理是: 把 OC 的方法注册到桥梁中,让 JS 去调用. 把 JS 的方法注册在桥梁中,让 OC 去调用.(注册自己,调用它人.) WebViewJavaScriptBridge 使用的基本步骤 ...