【问题标题】:parse csv format file into java arrays for generating ldif format file将csv格式文件解析成java数组生成ldif格式文件
【发布时间】:2019-04-14 19:48:59
【问题描述】:

我是java编程领域的菜鸟, 我正在尝试解析一个 csv 格式文件,只用逗号(,)分割 该文件包括用户的帐户名和真实姓名, 例如,它看起来像:tom123,Tom Halland,kelly02,Kelly Chen,..等等, 我想使用java将这些用户的数据解析成数组之类的东西, 所以我可以重用这个数组,然后生成 ldif 格式文件并将其导入 LDAP 服务器以自动创建帐户, 有没有更简单的方法呢?或对我有任何技术建议? 非常感谢!

【问题讨论】:

  • 是的,您应该能够使用相同的数组并将其分配给input.split(","),其中input 是您的用户元数据的CSV 字符串。或许添加更多代码。

标签: java csv ldif


【解决方案1】:

我正在分享我之前的一项任务中的代码 sn-p。基本上代码执行以下任务:

1) 逐行读取CSV文件

2) 借助预定义的字符将每一行拆分为标记(如果是 csv,则为 ',')

3) 生成所需ldif格式的字符串形式的记录

4) 将记录写入输出文件

String inputCSVFile = "/input_folder_path/sample.csv"; 
        BufferedReader bufferedReader = null;
        String lines = "";
        String splitChar = ",";        
        String[] columns;

        int count = 0;

        try {

            PrintStream printStream = new PrintStream(new FileOutputStream("/output_folder_path/e.ldif"));// Step 1
            bufferedReader = new BufferedReader(new FileReader(inputCSVFile));

            while ((lines = bufferedReader.readLine()) != null) {


                columns = lines.split(splitChar);// Step 2


                if (count > 0) {// Step 3 ,4
                    printStream.println("dn: cn="+columns[1]+", ou="+columns[2]+", o=Data"
                            + "\ngivenName: "+columns[0]
                            + "\nsn: "+columns[3]
                            + "\n"
                    );
                }
                count++;

            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

【讨论】:

  • 感谢您的好意和好主意,我会努力使这个 java 程序工作的!
猜你喜欢
  • 2018-07-10
  • 2019-07-12
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
相关资源
最近更新 更多