разобрать файл формата csv в массивы java для создания файла формата ldif - PullRequest
0 голосов
/ 12 ноября 2018

Я новичок в области кодирования Java, Я пытаюсь проанализировать файл формата CSV, разделив только запятыми (,) этот файл содержит имена учетных записей пользователей и настоящие имена, например, это выглядит так: Tom123, Tom Halland, kelly02, Kelly Chen, и т. д., Я хочу разбить данные этого пользователя на что-то вроде массивов, используя Java, поэтому я могу повторно использовать этот массив, затем сгенерировать файл формата ldif и импортировать его на сервер LDAP для автоматического создания учетных записей, Есть ли более простой способ сделать это? или какие-то технические советы для меня? Большое спасибо!

1 Ответ

0 голосов
/ 12 ноября 2018

Я делюсь фрагментом кода из одного из моих предыдущих заданий. В основном код выполняет следующие задачи:

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();
                }
            }
        }
...