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. Qt源代码分析

    记下好文章,慢慢看,然后加上自己心得: http://www.cnblogs.com/hicjiajia/archive/2011/08/27/2155512.html Qt源码分析之信号和槽机制ht ...

  2. Docker搭建MySQL服务

    Docker开源镜像 前面我们已经安装好了Docker,也简单了解了Docker.那么我们可以尝试搭建一个MySQL服务. 要搭建服务就要启动服务容器,要创建容易就要有镜像,Docker提供了一个类似 ...

  3. iOS CoreMotion框架(传感器)

    我们知道iOS的应用真的太多了,很多应用让我们惊叹不已!!!很多意想不到的应用! 比如: 1.电子罗盘指南针之类的应用-让我们知道方向. 2.运动类型软件-让我们知道我们跑步多少公里. 3.社交软件中 ...

  4. linux系统识别和挂载文件系统

    1. 使用df 命令查看文件系统及相关挂载点信息 [root@server101 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on ...

  5. Android addRule()

    布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的布局排列方式,这时候就需要用到 Relati ...

  6. form提交的时候使用method=get导致乱码

    一个a.jsp提交给b.jsp, b.jsp中使用 request.setCharacterEncoding("UTF-8"); 解决乱码 a.jsp中的form忘了写method ...

  7. 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

    <Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...

  8. python下载图片

    import re import  urllib.request   def getHtml(url): page = urllib.request.urlopen(url) html = page. ...

  9. Windows,OS X 屏幕录制gif的工具

    gif比png,jpg具有更好的展示效果.github上的很多项目就用gif. 一个比较好的工具是 : http://cockos.com/licecap/    但是目前不支持linux.

  10. ARC的内存管理

        在objective-c中,内存的引用计数一直是一个让人比较头疼的问题.尤其是当引用计数涉及到arc.blocks等等的时候.似乎ARC的出现只是让我们解放了双手,由于底层实现依然依赖引用计数 ...