lal
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer; public class CsvResolve { public List<String[]> readCsv(String csvfilePath,String encodingCharSet)
{
List<String[]> resultList=new ArrayList<String[]>();
try {
FileInputStream csvfileInputStream = new FileInputStream(csvfilePath);
InputStreamReader csvfileInputStreamReader = new InputStreamReader(csvfileInputStream , encodingCharSet);
BufferedReader csvfileBufferedReader = new BufferedReader(csvfileInputStreamReader);
String line = csvfileBufferedReader.readLine();
String[] firstLineElements=line.split("\t");
//输出第一行的内容
for(int i=;i<firstLineElements.length;i++)
{
System.out.println(i+"\t"+firstLineElements[i]);
}
System.out.println(); while ((line = csvfileBufferedReader.readLine()) != null) {
String[] otherLineElements=line.split("\t");
//如果结尾处有一个或多个tab键,说明,最后缺失的有元素
//先把字符串数组转化为list,让后添加元素,然后再把添加完元素的list
//转化为字符串数组 if(otherLineElements.length<firstLineElements.length)
{
String[] toaddOtherLineElements;
List<String> tempList=new ArrayList<String>();
int i=;
for(;i<otherLineElements.length;i++)
{
if(otherLineElements[i].equals(""))
{
tempList.add(null);
}else{
tempList.add(otherLineElements[i]);
}
}
for(;i<firstLineElements.length;i++)
{
tempList.add(null);
}
toaddOtherLineElements=tempList.toArray(new String[]);;
resultList.add(toaddOtherLineElements);
}
//如果长度相同说明最后的元素存在
else{
String[] toaddOtherLineElements;
List<String> tempList=new ArrayList<String>();
int i=;
for(;i<otherLineElements.length;i++)
{
if(otherLineElements[i].equals(""))
{
tempList.add(null);
}else{
tempList.add(otherLineElements[i]);
}
}
toaddOtherLineElements=tempList.toArray(new String[]);;
resultList.add(toaddOtherLineElements);
}
} csvfileBufferedReader.close(); } catch (FileNotFoundException e) {
// 捕获File对象生成时的异常
e.printStackTrace();
} catch (IOException e) {
// 捕获BufferedReader对象关闭时的异常
e.printStackTrace();
}
return resultList; } public static void main(String[] args) {
CsvResolve csvResolve=new CsvResolve(); List<String[]> csvContent=csvResolve.readCsv("d:/csv/1.csv","utf-8");
for(int i=;i<csvContent.size();i++)
{
String[] temp=csvContent.get(i);
for(int j=;j<temp.length;j++)
{
System.out.println(j+"\t"+temp[j]);
}
System.out.println();
} } }
lal的更多相关文章
- LAL v0.32.0发布,更好的支持纯视频流
Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...
- 利用Bootstrap快速搭建个人响应式主页(附演示+源码)
1.前言 我们每个程序员都渴望搭建自己的技术博客平台与他人进行交流分享,但使用别人的博客模板没有创意.做网站后台的开发人员可能了解前端,可是自己写一个不错的前端还是很费事的.幸好我们有Bootstra ...
- js实现多张图片每隔一秒换一张图片
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAHWCAIAAADLlAuAAAAgAElEQVR4nOzd5XNc157w+/l7bt2n6t
- java web学习总结(十一) -------------------基本概念使用Cookie进行会话管理
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...
- ubuntu 13.10 monodevelop3 安装
版本 ubuntu 13.10 桌面模式默认:unity :文件管理器:nautilus
- Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信
紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...
- linux下的触控板手势xSwipe and tag
这个最初是采用的touchegg.开始没有效果,后来网上发现是因为需要禁用系统的2指3指操作参考 http://askubuntu.com/questions/266057/cant-get-touc ...
- js 有用的代码
1. 如何创建嵌套的过滤器: //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“s ...
随机推荐
- Linux下的网络管理工具—OpenNMS
导读 OpenNMS的是一个运营商级别的,高度集成的,开放源码的平台,用于构建网络监控解决方案.OpenNMS有两个发行版:Meridian and Horizon.使用Meridian是可取的,对企 ...
- Linux中常用的查看系统信息的命令
导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到una ...
- LBP
参考:http://www.cnblogs.com/mikewolf2002/p/3438698.html
- FastMM的安装方法
FastMM 快速在D2006和2007中已代替了原来的内存管理器.D7也可以使用,而且很方便哦.请看步骤: 1. FastMM是开源项目,去她老家先拖个来. http://sourceforge.n ...
- 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器
UFLDL即(unsupervised feature learning & deep learning).这是斯坦福网站上的一篇经典教程.顾名思义,你将在这篇这篇文章中学习到无监督特征学习和 ...
- Linux 日志文件utmp、wtmp、lastlog、messages
1.有关当前登录用户的信息记录在文件utmp中:==who命令 2.登录进入和退出纪录在文件wtmp中:==w命令 3.最后一次登录文件可以用lastlog命令察看: 4.messag ...
- 又一款linux提权辅助工具
又一款linux提权辅助工具 – Linux_Exploit_Suggester 2013-09-06 10:34 1455人阅读 评论(0) 收藏 举报 https://github.com/Pen ...
- SSM框架Web程序的流程(Spring SpringMVC Mybatis)
SSM框架的Web程序主要用到了三个技术: Spring:用到了注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程). SpringMVC:用到了MVC模型,将逻辑代 ...
- python将json格式的数据转换成文本格式的数据或sql文件
python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon ...
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
转载自://http://www.cnblogs.com/anee/p/3324140.html 用mybatis查询时,传入一个字符串传参数,且进行判断时,会报 There is no getter ...