Добавить в конец строки в файле CSV - Java - PullRequest
0 голосов
/ 05 июня 2018

Я хочу добавить идентификатор в конец строки в CSV-файле, используя Java, если есть совпадение.

Вот как выглядит мой код:

        String tempFile = "/C:/Users/chid.kulkarni/Desktop/JSON_CSV/temp.csv";
        File oldFile = new File(filepath);
        File newFile = new File(tempFile);
        String url1 = "";
        String Desc = "";

        try
        {
        FileWriter fw = new FileWriter(tempFile, true);
        BufferedWriter bw = new BufferedWriter(fw);
        PrintWriter pw = new PrintWriter(bw);
        x = new Scanner(new File(filepath));
        x.useDelimiter("[,\n]");

        while(x.hasNext())
        {
            url1 = x.next();
            Desc= x.next();

            if(url1.equals(editTerm))
            {
                System.out.println("Found!!, URL:"+url1);
                System.out.println("Edit_term:"+editTerm);
            }
        }
        }

        catch(Exception e)
        {
            System.out.println(e);
        }

Input

editTerm: www.airbnb.com

CSV-файл

URL                 Desc            
www.google.com     searches web
www.airbnb.com     House rentals
www.gmail.com      email application

Желаемый вывод: если URL (www.airbnb.com) == editTerm (www.airbnb.com)

URL                 Desc               ID
www.google.com     searches web
www.airbnb.com     House rentals       100001
www.gmail.com      email application

Как мне этого добиться?

Я видел блоги / сообщения о добавлении всего столбца.В моем случае я просто хочу добавить идентификатор к определенной строке вместо добавления целого столбца.

1 Ответ

0 голосов
/ 05 июня 2018

Я изменил код в блоке try-catch и достиг желаемого результата.Эта версия специально записывает значение идентификатора "100001" для editTerm.Позже вы можете добавить функцию для получения targetId, специфичного для editTerm.

Мне пришлось избавиться от последнего символа «Desc», который вызывал символ новой строки.

    String targetId = "100001";
    try
    {
        FileWriter fw = new FileWriter(tempFile, true);
        BufferedWriter bw = new BufferedWriter(fw);
        PrintWriter pw = new PrintWriter(bw);
        x = new Scanner(new File(filepath));
        x.useDelimiter("[,\n]");
        x.hasNext();
        url1 = x.next();
        Desc= x.next();
        Desc = Desc.substring(0,Desc.length()-1);
        pw.write(url1+","+Desc+",ID\n");
        while(x.hasNext())
        {
            url1 = x.next();
            Desc= x.next();
            Desc = Desc.substring(0,Desc.length()-1);
            pw.write(url1+","+Desc);
            if(url1.equals(editTerm))
            {
                System.out.println("Found!!, URL:"+url1);
                System.out.println("Edit_term:"+editTerm);
                //targetId = findTargetId(editTerm);// id finder function 
                pw.write(","+targetId);
            }
            pw.write("\n");
        }
        pw.close();
    }
    catch(Exception e)
    {
        System.out.println(e);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...