以特定格式打印出csv文件?

时间:2013-11-21 18:28:59

标签: java csv opencsv

我正在阅读具有此布局的csv文件:

CS4092,B
CS2013,A
CS8291,C
CS0927,D
CS0281,A

当我打印出来时,我得到了这个输出:

CS4092
BMA4042
CCS4023
ACS4075
BCS4010
A

我想要实现的输出是:

CS4092 - B
CS2013 - A
CS8291 - C
CS0927 - D
CS0281 - A

有人可以告诉我,我可以通过何种方式获得所需的输出。 感谢。

public class Student
{
    private String studentID;

public Student()
{

}
    public void setID(String studentID)
    {
        this.studentID = studentID;
    }
public void checkResults() throws IOException 
{
    String lines = "", unparsedFile = "", myArray[];
    String path = System.getProperty("user.home") + 
                             "/NetBeansProjects/CS4013Project/src/" +
                             this.studentID + "Results.csv";
    FileReader fr = new FileReader(path);
    try (BufferedReader br = new BufferedReader(fr)) 
    {
        while((lines = br.readLine()) != null)
        {
            unparsedFile += lines;
        }
    }
   myArray = unparsedFile.split(",");

   for(String item : myArray)
   {
       System.out.println(item);
  }
 }
}

4 个答案:

答案 0 :(得分:0)

当你将它们连接起来形成unparsedFile时,你需要在每对行之间插入一个逗号。

没有它,unparsedFile包含:

CS4092,BCS2013,ACS8291,CCS0927,DCS0281,A

你需要它包含:

CS4092,B,CS2013,A,CS8291,C,CS0927,D,CS0281,A

答案 1 :(得分:0)

    int i = 0;
    for (String item : myArray)
    {

        System.out.print(item);//It doent add a new line after printing the item
        if (++i % 2 != 0)
        {
            System.out.println(("-")); //if just one printed just append -
        }
        else
        {
            System.out.println(); //else put a new line and reset the flag
            i=0;

        }
    }

答案 2 :(得分:0)

您将所有行连接在一起(没有换行符分隔符)。您应该创建ArrayList<String>行,然后拆分每行

或使用CSV处理库。

答案 3 :(得分:0)

尝试用:

替换while循环
while ((lines = br.readLine()) != null) {
   String myarray[] = lines.split(",");
   System.out.format("%s - %s\n", myarray[1],myarray[0]);
}

并删除此后的代码