用java将字符串数组写入csv文件的一列

用java将字符串数组写入csv文件的一列,java,csv,filewriter,printwriter,Java,Csv,Filewriter,Printwriter,所以我要做的是在列的每个单元格中写下一个数据数组,数组中的元素越多越好。我希望我在excel中也像这样: buyer | parts | price| quantity | comments tom | blah | 546 | 5 | blah | blah | 56 | 67 | 我的文件中的列比这个多很多,但我想给出一个简单的例子。造成我的问题的另一个原因是,我不希望在写入程序完成我的数组数据集后,在写入程序所在的最后一

所以我要做的是在列的每个单元格中写下一个数据数组,数组中的元素越多越好。我希望我在excel中也像这样:

buyer | parts |  price| quantity  | comments
tom   | blah  | 546   | 5         |   blah
      |  blah | 56    |  67       |
我的文件中的列比这个多很多,但我想给出一个简单的例子。造成我的问题的另一个原因是,我不希望在写入程序完成我的数组数据集后,在写入程序所在的最后一行上打印下一列,所以我希望它位于forst行上。为了实现这一点,我已经研究了其他图书馆,但我找不到任何满足我需求的图书馆。我知道CSV文件的性质可能不允许这种情况发生,如果不手动添加空白单元格,但是有其他方法可以做到这一点吗

Enumeration <String> paramNames = request.getParameterNames();
        while(paramNames.hasMoreElements()) 
        {
            String paramName = (String)paramNames.nextElement();
                            writer.append(paramName);
            writer.append(',');
            String[] paramValues = request.getParameterValues(paramName);
            if (paramValues.length == 1)
            {
                String paramValue = paramValues[0];
                if (paramValue.length() == 0)
                {
                    writer.append("No Value");
                    writer.append('\n');
                }
                else
                {
                    writer.append(paramValue);
                    writer.append('\n');
                }
            }
            else
            {
                for(int i = 0; i<paramValues.length; i++)
                {
                    writer.append(paramValues[i]);
                    writer.append(',');
                }
                writer.append('\n');
            }
            previousname = paramName;

        }
        writer.flush();
        writer.close();
    }
Enumeration paramNames=request.getParameterNames();
while(paramNames.hasMoreElements())
{
字符串paramName=(字符串)paramNames.nextElement();
writer.append(paramName);
writer.append(',');

字符串[]paramValues=request.getParameterValues(paramName); 如果(paramValues.length==1) { 字符串paramValue=paramValues[0]; if(paramValue.length()==0) { writer.append(“无值”); writer.append('\n'); } 其他的 { writer.append(参数值); writer.append('\n'); } } 其他的 { 对于(int i=0;ifrom:

可能不需要硬打印,而是循环数组并打印每个值,每个值用逗号分隔

比如:

Array array;

    Iterator<String> iter = array.iterator();
    while (iter.hasNext())
    {
        object = iter.next();
        pw.print(object.getBuyer());
        pw.print(",");
        pw.print(object.getTitle());
        ..          
    }
数组;
迭代器iter=array.Iterator();
while(iter.hasNext())
{
object=iter.next();
print(object.getBuyer());
印刷品(“,”);
print(object.getTitle());
..          
}
来自:

可能不需要硬打印,而是循环数组并打印每个值,每个值用逗号分隔

比如:

Array array;

    Iterator<String> iter = array.iterator();
    while (iter.hasNext())
    {
        object = iter.next();
        pw.print(object.getBuyer());
        pw.print(",");
        pw.print(object.getTitle());
        ..          
    }
数组;
迭代器iter=array.Iterator();
while(iter.hasNext())
{
object=iter.next();
print(object.getBuyer());
印刷品(“,”);
print(object.getTitle());
..          
}


> p> >如果你用java编写CSV文件,考虑使用库。

如果你用java编写CSV文件,考虑使用库。< /p>你是说要为每一列写所有的行吗?比如所有的买主,然后所有的标题,所有的……就像在这种情况下,我有一个买家,他可以订购多个P。艺术,我会写每一列。基本上,我得到的数据是发票类型的东西。你能更好地解释一下你已经在使用的数据结构吗?你有一个数组,里面有所有这些数据,还是5个数组,每列一个?还是一个包含数据的数组?字符串[]paramValues=request.getParameterValues(paramName);是从html表单中获取值的代码。因此通常只有一个值,但有时在表格中有多个值。我认为CSV库不会让您轻松地按列写入数据。(如果只是为了避免缓冲整个输出。)你必须在内存中生成要输出的行,根据需要使用空单元格,然后将这些行写入CSV。你是说你要为每列写入所有行。例如,所有买家,然后是所有标题,所有……就像在这种情况下,我会有一个买家,他可以订购多个部分,我会将每列写入我沿着列走。基本上我得到的数据是发票类型的东西。你能更好地解释一下你已经在使用的数据结构吗?你有一个数组,里面有所有这些数据,还是5个数组,每列一个?还是一个数组包含数据?String[]paramValues=request.getParameterValues(paramName);是从html表单中获取值的代码。因此通常只有一个值,但有时在表格中有多个值。我认为CSV库不会让您轻松地按列写入数据。(如果只是为了避免缓冲整个输出。)你必须在内存中生成要输出的行,根据需要使用空单元格,然后将它们写入CSV。我目前有代码,当我只使用垂直列表时,它可以完美地打印内容…但我需要将其作为水平列表…使多值成为一个问题我认为你需要向我们公开你的数据结构。从据我所知,每个买家可能都有多个部分,我认为最好的方法是为每个部分输入一行,但要再次与买家一起输入。String[]paramValues=request.getParameterValues(paramName)这是我从表单中获得的所有值,通常它只有一个,因为它处理的大部分是文本字段,但是当它出现在表格中间的表格时,它现在可以使用这个函数返回多个值。我添加了我目前在我的CSV文件中打印我的数据VrTiCURL的代码。这些行中的每一行都有相同的值(比如买家有很多部分,每个部分都有相同的买家),或者就像millimoose说的那样,你可以用空白来填充另一列。使用csv是一项要求吗?与你的客户核实格式,也许会有所帮助。你可以尝试将其放在db中(sqllite可能非常适合你的情况)或者将其保存为json或xml格式。我目前有代码,当我只使用垂直列表时,它可以完美地打印内容…但我需要作为水平列表…使多个值成为一个问题我认为您需要向我们公开您的数据结构。据我所知,每个买家可能都有多个部分,我认为最好的方式是r每个pa