java csv放入二维数组_java读取目录下所有csv文件数据,存入三维数组并返回

该博客介绍了一个Java程序,用于读取指定目录下的所有CSV文件,并将数据存储到三维数组中。首先,程序使用BufferedReader和FileReader打开CSV文件,然后按行读取并用逗号分隔数据,将其存储到二维数组中。接着,程序遍历目录获取所有CSV文件路径,将每个文件的数据存储到三维数组的不同层。最后,展示了如何打印三维数组的内容。
摘要由CSDN通过智能技术生成

packagedwzx.com.get;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;importjava.util.ArrayList;importjava.util.StringTokenizer;//解析指定目录下的所有csv文件,返回三维数组数据

public classGetCsvData {public static final int COLUMN_NUM = 9;//csv文件列数//获取指定csv文件数据,存入二维数组并返回

public static String[][] getCsvDataNew(String filePath) throwsIOException{

BufferedReader br= new BufferedReader(new FileReader(newFile(filePath)));

String line= "";

ArrayList lineList = new ArrayList();//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();returnstr;

}//获取目录当前路径下所有csv文件的绝对路径

public static ArrayListgetFileList(String dirPath){

File dir= newFile(dirPath);

File[] fileList=dir.listFiles();

ArrayList strList = new ArrayList();for(File f:fileList){if((f.isFile())&& (".csv".equals(

f.getName().

substring(

f.getName().lastIndexOf("."),

f.getName().length())))){

strList.add(f.getAbsolutePath());

}

}returnstrList;

}//获取指定目录下所有csv文件数据,存入三维数组并返回

public static String[][][] getAllCsvData(String dir) throwsIOException{//ArrayList list = new ArrayList();

ArrayList csvList =getFileList(dir);

String[][][] s3= newString[csvList.size()][][];for(int i = 0; i < csvList.size(); i ++){

s3[i]=(getCsvDataNew(csvList.get(i)));

}returns3;

}public static void main(String[] args) throwsIOException {

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]);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值