java读取目录下所有csv文件数据,存入三维数组并返回
package dwzx.com.get; import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer; //解析指定目录下的所有csv文件,返回三维数组数据
public class GetCsvData { public static final int COLUMN_NUM = 9;//csv文件列数 //获取指定csv文件数据,存入二维数组并返回
public static String[][] getCsvDataNew(String filePath) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(new File(filePath)));
String line = "";
ArrayList<String[]> lineList = new ArrayList<String[]>();
// Read a single line from the file until there are no more lines to read
while((line = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, ","); // 以逗号作为分隔符
String[] currCol = new String[COLUMN_NUM]; // Each currCol has 9 fields, so we need room for the 8 tokens.
for(int i = 0; i < COLUMN_NUM; i++) { // For each token in the line that we've read:
//先判断是否还有待读取数据,防止溢出
if(st.hasMoreTokens()){
currCol[i] = st.nextToken();
} }
lineList.add(currCol);
} String[][] str = new String[lineList.size()][9];
for(int i = 0; i < lineList.size(); i++) {
for(int j = 0; j < 9; j++) {
str[i][j] = lineList.get(i)[j];
//System.out.println(str[i][x]);
}
} br.close(); return str;
} //获取目录当前路径下所有csv文件的绝对路径
public static ArrayList<String> getFileList(String dirPath){
File dir = new File(dirPath);
File[] fileList = dir.listFiles();
ArrayList<String> strList = new ArrayList<String>();
for(File f:fileList){ if((f.isFile())
&& (".csv".equals(
f.getName().
substring(
f.getName().lastIndexOf("."),
f.getName().length())))){
strList.add(f.getAbsolutePath()); }
} return strList; } //获取指定目录下所有csv文件数据,存入三维数组并返回
public static String[][][] getAllCsvData(String dir) throws IOException{
//ArrayList<String> list = new ArrayList<String>();
ArrayList<String> csvList = getFileList(dir); String[][][] s3 = new String[csvList.size()][][];
for(int i = 0; i < csvList.size(); i ++){ s3[i] = (getCsvDataNew(csvList.get(i))); }
return s3;
} public static void main(String[] args) throws IOException { String[][][] s = getAllCsvData("testdata\\");
for(int i = 0; i < s.length; i ++)
for(int j = 0; j < s[i].length; j ++)
for(int k = 0; k < s[i][j].length; k ++){
System.out.println("s["+i+"]"+"["+j+"]"+"["+k+"]: "+s[i][j][k]);
} } }
java读取目录下所有csv文件数据,存入三维数组并返回的更多相关文章
- Java 读取目录下的所有文件
package util; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apa ...
- Java查询目录下的所有文件(包括子目录)
目录图: 方法代码: /** * 读取目录下的所有文件 * * @param dir * 目录 * @param fileNames * 保存文件名的集合 * @return */ public st ...
- php读取目录下的所有文件
php读取目录下的所有文件 $path = './use'; $result = scanFile($path); function scanFile($path) { global $result; ...
- 解决:java 读取 resources 下面的 json 文件
前言:java 读取 工程下的配置文件,文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑.maven项目 直接上工具类代码 package com.yule.compon ...
- 【转】java 文件 读取目录下的所有文件(包括子目录)
转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io ...
- java对于目录下的相关文件的单词操作
写入文件的目录.代码通过找目录下的文件,进行相关函数的操作.如果目录下面包含子目录.代码设有调用递归的方法,在寻找子目录下的文件 在进行相关的函数操作.函数主要是按用户输入的个数要求输出文件中出现次数 ...
- Spark:java api读取hdfs目录下多个文件
需求: 由于一个大文件,在spark中加载性能比较差.于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢? public class SparkJo ...
- [转]读取assets目录下的数据库文件
在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ...
- 转载 Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))
转载:程兴亮文章,地址;http://www.cnblogs.com/chengxingliang/archive/2011/02/07/1949579.html 使用WebClient读取XAP包同 ...
随机推荐
- 谈谈MVC模式
谈谈MVC模式 作者: 阮一峰 1. 如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论. MVC模式 ...
- Qt_5_3_MSVC2012-编译QFtp-qt5编译QFtp
一.下载源码 git clone https://qt.gitorious.org/qt/qtftp.git 或者直接下载:云盘下载 二.构建 1.不对源码修改,直接构建qtftp 2.做如下修改,再 ...
- iOS iPhone iPad 各种控件默认高度
iPhone iPad 各种控件默认高度 注意:这些是ios7之前的,ios7之后(包括ios7)有改动,我会在后面标注出来 iPhone和iPad下各种常见控件的宽度和标准是一样的,所以这里就用iP ...
- POJ 3494 Largest Submatrix of All 1’s(最大全1子矩阵)
题目链接:http://poj.org/problem?id=3494 题意:给出一个01的矩阵,找出一个面积最大的全1矩阵. 思路:用h[i][j]表示从位置(i,j)向上连续1的最大长度.之后枚举 ...
- Using Git subtrees to split a repository
https://lostechies.com/johnteague/2014/04/04/using-git-subtrees-to-split-a-repository/ We are in a p ...
- Java深入学习之--初始化
目录 1.方法重载 2.默认构造器 3.this关键字 4.static关键字 5.初始化 1.方法重载 java中方法重载的意思是在同一个类中可以存在方法名相同的方法,而方法的参数类型不同,即使两个 ...
- 转:ViewPager+Fragment基本使用方法(附源码)
ViewPager+Fragment可以做出多页面滑动效果,让我们的应用程序界面操作起来更加灵活 对于ViewPager和Fragment组件还不熟悉的朋友,可以先看看相关的资料 首先在activit ...
- html_表单
一.表单框架简介 表单是提供让读者在网页上输入,勾选和选取数据,以便提交给服务器数据库的工具.(用于将信息提交给服务器) <form>...</form>标记 作用:用于创建一 ...
- codeforces 431 B Shower Line【暴力】
题意:给出五个人的编号,分别为 1 2 3 4 5,他们在排队, 最开始的时候,1和2可以交谈,3和4可以交谈 然后1走了之后,2和3交谈,4和5可以交谈 2走了之后,3和4可以交谈, 3走了之后,4 ...
- ubuntu 11.04 源 更新不了,全显示ign、404
原文地址:http://blog.csdn.net/enjio/article/details/11603373 ubuntu 11.04 源 更新不了 分类: 开发相关2013-09-12 14 ...