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

  1. LAL v0.32.0发布,更好的支持纯视频流

    Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...

  2. 利用Bootstrap快速搭建个人响应式主页(附演示+源码)

    1.前言 我们每个程序员都渴望搭建自己的技术博客平台与他人进行交流分享,但使用别人的博客模板没有创意.做网站后台的开发人员可能了解前端,可是自己写一个不错的前端还是很费事的.幸好我们有Bootstra ...

  3. js实现多张图片每隔一秒换一张图片

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAHWCAIAAADLlAuAAAAgAElEQVR4nOzd5XNc157w+/l7bt2n6t

  4. java web学习总结(十一) -------------------基本概念使用Cookie进行会话管理

    一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...

  5. ubuntu 13.10 monodevelop3 安装

    版本 ubuntu 13.10 桌面模式默认:unity :文件管理器:nautilus

  6. Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信

    紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...

  7. Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信

    众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...

  8. linux下的触控板手势xSwipe and tag

    这个最初是采用的touchegg.开始没有效果,后来网上发现是因为需要禁用系统的2指3指操作参考 http://askubuntu.com/questions/266057/cant-get-touc ...

  9. js 有用的代码

    1. 如何创建嵌套的过滤器: //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“s ...

随机推荐

  1. xcode Git

    http://blog.csdn.net/w13770269691/article/details/38704941 在已有的git库中搭建新库,并且将本地的git仓库,上传到远程服务器的git库中, ...

  2. Linux 实现rsyslog日志里面的IP地址记录 未测试

    之前我是在bashrc中添加了一句,让系统操作日志时向rsyslog发送一份内容,现在只要在发送的时候,自己再获取下当前的远程登录IP加进去就可以,像这样 /etc/bashrc sshClientI ...

  3. linux 回收站的添加

    在~下     .bashrc或者.bash_profile加入 mkdir -p ~/.trash     alias rm=trash       trash()     {      mv $@ ...

  4. samba服务搭建及管理

    关闭防火墙 # /etc/init.d/iptables stop # chkconfig --level iptables off 关闭SELINUX # vim /etc/sysconfig/se ...

  5. 【OpenStack】OpenStack系列13之Nova源码解析与API扩展

    学习思路 议程:代码结构-主干流程-分层架构-业务模型-数据库模型-消息模型 分布式架构:Api:横向扩展    rpc:纵向扩展 分层架构:Controller接口层.View/Manager逻辑层 ...

  6. VIM中的折叠命令

    参考:http://blog.csdn.net/bruce0532/article/details/8497284 za:在折叠与展开间自由转换 zf:创建折叠 示例:zf 3j    #本行及以下3 ...

  7. MySQL下载安装、配置与使用(win7x64)

    用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. 工具/原料 电脑 win7 6 ...

  8. Python -- BeautifulSoup的学习使用

    BeautifulSoup4.3 的使用 下载和安装 # 下载 http://www.crummy.com/software/BeautifulSoup/bs4/download/ # 解压后 使用r ...

  9. cf_ducational Codeforces Round 16_D(gcd)

    题意:求R-L区间满足x=a1*k+b1=a2*l+b2的x的个数; 思路:求出最小的满足条件的x0,则ans=(L-x)/(a1/gcd(a1, a2)*a2)+1; 注意剪枝,不然会超时: 代码: ...

  10. dbca no protocol support

    http://blog.itpub.net/26937943/viewspace-1325094/