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文件数据,存入三维数组并返回的更多相关文章

  1. Java 读取目录下的所有文件

    package util; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apa ...

  2. Java查询目录下的所有文件(包括子目录)

    目录图: 方法代码: /** * 读取目录下的所有文件 * * @param dir * 目录 * @param fileNames * 保存文件名的集合 * @return */ public st ...

  3. php读取目录下的所有文件

    php读取目录下的所有文件 $path = './use'; $result = scanFile($path); function scanFile($path) { global $result; ...

  4. 解决:java 读取 resources 下面的 json 文件

    前言:java 读取 工程下的配置文件,文件类型为 json(*.json),记录一下始终读取不到 json 文件的坑.maven项目 直接上工具类代码 package com.yule.compon ...

  5. 【转】java 文件 读取目录下的所有文件(包括子目录)

    转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io ...

  6. java对于目录下的相关文件的单词操作

    写入文件的目录.代码通过找目录下的文件,进行相关函数的操作.如果目录下面包含子目录.代码设有调用递归的方法,在寻找子目录下的文件 在进行相关的函数操作.函数主要是按用户输入的个数要求输出文件中出现次数 ...

  7. Spark:java api读取hdfs目录下多个文件

    需求: 由于一个大文件,在spark中加载性能比较差.于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢? public class SparkJo ...

  8. [转]读取assets目录下的数据库文件

    在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ...

  9. 转载 Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))

    转载:程兴亮文章,地址;http://www.cnblogs.com/chengxingliang/archive/2011/02/07/1949579.html 使用WebClient读取XAP包同 ...

随机推荐

  1. CentOS配置SSH单向无密码访问

    最近在研究一款文件系统,需要远程给客户机安装软件,且需要无SSH密码访问,另外需要远程给客户机传文件,每次输入root密码很不方便,就想到用ssh key生成公钥.私钥来验证,而避免每次就必须输入ro ...

  2. iOS:模态弹出窗控制器UIPopoverPresentationController

    模态弹出窗控制器:UIPopoverPresentationController 实质:就是将内容控制器包装成PopoverPresentationController的形式,然后再模态出来,必须指定 ...

  3. SQL中的Null深入研究分析

    SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引 ...

  4. makefile中的自动化变量 【转】

    转自:http://blog.chinaunix.net/uid-28458801-id-3495215.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 ...

  5. C# 中通过API实现的打印类

    using System;using System.Collections;using System.Text;using System.Runtime.InteropServices; using ...

  6. linux硬件驱动层

    1.make menuconfig scripts/kconfig/lxdialog/menubox.o: In function `print_buttons':menubox.c:(.text+0 ...

  7. php关于static关键字

    静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用.静态方法中,$this伪变量不允许使用.可以使用self,parent,s ...

  8. DataGridView中的单元格提示错误信息

    http://stackoverflow.com/questions/7713988/winforms-problems-validating-a-cell-in-a-datagridview

  9. 【Python】如何安装easy_install?

    [Python]如何安装easy_install? http://jingyan.baidu.com/article/b907e627e78fe146e7891c25.html easy_instal ...

  10. C#配置系统未能初始化

    如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素.",将appSettings放到conf ...