如何使用java导出文件中的数据

如何使用java导出文件中的数据,java,list,arraylist,linked-list,Java,List,Arraylist,Linked List,我需要导出4列中的值。3列的值已正确填充。 我在第四列遇到问题,它是组织列。它是多值列。即:它有多个值 我尝试将组织列的对象转换为字符串,但没有帮助 请参阅下面的代码: String appname = "abc"; String path = "//home/exportfile//"; String filename = path+"ApplicationExport-"+appname+".txt"; String ret = "false"; Q

我需要导出4列中的值。3列的值已正确填充。 我在第四列遇到问题,它是组织列。它是多值列。即:它有多个值

我尝试将组织列的对象转换为字符串,但没有帮助

请参阅下面的代码:

    String appname = "abc";
    String path = "//home/exportfile//";
    String filename = path+"ApplicationExport-"+appname+".txt";
    String ret = "false";

    QueryOptions ops = new QueryOptions();
    Filter [] filters = new Filter[1];
    filters[0] = Filter.eq("application.name", appname);
    ops.add(filters);

    List props = new ArrayList();
    props.add("identity.name");

    //Do search
    Iterator it = context.search(Link.class, ops, props);

    //Build file and export header row
    BufferedWriter out = new BufferedWriter(new FileWriter(filename));
    out.write("Name,UserName,WorkforceID,organization");
    out.newLine();          

    //Iterate Search Results
    if (it!=null)
    {                               
            while (it.hasNext()) {

                    //Get link and create object
                    Object [] record = it.next();
                    String identityName = (String) record[0];
                    Identity user = (Identity) context.getObject(Identity.class, identityName);

                    //Get Identity attributes for export
                    String workforceid = (String) user.getAttribute("workforceID");                 

                    //Get application attributes for export
                    String userid="";

                    List links = user.getLinks();
                    if (links!=null)
                    {
                            Iterator lit = links.iterator();
                            while (lit.hasNext())
                            {
                                    Link l = lit.next();
                                    String lname = l.getApplicationName();
                                    if (lname.equalsIgnoreCase(appname))
                                    {
                                              userid = (String) l.getAttribute("User Name");
                                              List orgList = l.getAttribute("Organization");

                                    }
                            }
                    }                               

                    //Output file
                    out.write(identityName+","+userid+","+workforceid+","+org);                             
                    out.newLine();                                                                          
                    out.flush();
            }                       
            ret="true";
    }
    //Close file and return
    out.close();
    return ret;
此代码的输出应为:

例如: 名称、用户名、WorkforceID、组织 abc,abc,123,xy qwe,Q01234,xy


如果您能帮助更正此代码,我们将不胜感激。

您可能希望在while循环之外声明
列表orgList
,因为每次创建它时,您都在使用org,而且我在代码的其他地方没有看到任何组织

您可能希望在while循环之外声明
列表orgList
每次创建它时,您也在使用org,而我在代码的其他地方没有看到任何org

编辑:

这将为您提供所需的输出:

out.write(identityName+,“+userid+”,“+workforceid+”,“+Arrays.toString(orgList.toArray());

编辑:

这将为您提供所需的输出:


out.write(identityName+”、“+userid+”、“+workforceid+”、“+Arrays.toString(orgList.toArray());

我已经在while循环之外声明了列表,并将org更改为orgList。但是它仍然无助于获取组织的输出。我已经在while循环之外声明了列表,并将org更改为orgList。但是仍然无助于获取组织的输出。您能告诉我应该将此语法放在哪里吗?您有一行:
out.write(identityName+,“+userid+”,“+workforceid+”,“+org”);
将数据保存到文件中。我在上面的示例代码中找不到
org
变量。
org
应该是包含
orgList
?out.write(identityName+,“+userid+,“+workforceid+”,“+org”)数据的字符串吗;这里我改为orgList,但仍然得到了无效值…我如何使用list函数并查看是否有toString方法…既然organization列中的数据是一个列表,您可以指导我将此语法放在哪里吗?您有一行:
out.write(identityName+,“+userid+,“+workforceid+,“+org);
将数据保存到文件中。我在上面的示例代码中找不到
org
变量。
org
是否应该是包含
orgList
中数据的字符串?out.write(identityName+,“+userid+,”+workforceid+,“+org);这里我改为orgList,但仍然得到void值…如何使用list函数并查看是否有toString方法…因为organization列中的数据是列表