从java中的.csv文件中读取7列?

时间:2013-02-16 17:03:42

标签: java

我是Java新手。有人可以告诉我如何读取包含7列的CSV文件吗?

这是我的代码:

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class main {

    public static  Map<String,String> map1 = null;
    public static  Map<String,String> map2 = null;

    public static void main(String[] args) {
        try {
            readFileandPopulate();
            for (Map.Entry<String, String> entry : map1.entrySet()) {
                System.out.println("Key : " + entry.getKey() + " Value : "
                    + entry.getValue()+" address :"+map2.get(entry.getKey()));
                //insert into DB
            }
        } catch (Exception e) {//Catch exception if any
            e.printStackTrace();
            System.err.println("Error: " + e.getMessage());
        }
    }

    public static void readFileandPopulate() throws Exception {
        FileInputStream fstream = new FileInputStream("/Users/Desktop/Pattern Recognition/DataSetR/1a19.csv");
        // Use DataInputStream to read binary NOT text.
        BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
        String strLine;
        map1 = new HashMap<String,String>();
        while ((strLine = br.readLine()) != null) {
            System.out.println(strLine);
            String temp[] = strLine.split(",");
            map1.put(temp[0], temp[1]);
        }
        in.close();
        System.out.println("done 1");

    }
} 

是否有任何方法只读取少数列并删除剩余数据,或者我可以将所有值存储在数组中并使用数组索引来使用值计算一个等式吗?

2 个答案:

答案 0 :(得分:0)

我建议使用CSV解析器,例如http://opencsv.sourceforge.net/。然后你可以做以下事情:

CSVReader reader = new CSVReader(new FileReader(filePath), ',');

List<String[]> rows= reader.readAll();

for (String[] row : rows)
{
    for (int i = 0; i < numColumnsToParse; i++)
    {
        //do something with row[i]
    }
}

答案 1 :(得分:0)

import java.io.FileReader;
import java.io.IOException;
import java.util.List;

import au.com.bytecode.opencsv.CSVReader;

public class ReadCSV 
{
    public static void main(String[] args) throws IOException 
    {
        String[] row = null;
        String csvFilename = "C:/Users/Hussain/Desktop/data.csv";
        CSVReader csvReader = new CSVReader(new FileReader(csvFilename));
        List content = csvReader.readAll();
        for (Object object : content) 
        {
            row = (String[]) object;
            System.out.println("value in row 7 ===>>>"+row[6]);
        }
        csvReader.close();
        }
}

你可以从here

添加jar