Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben

fleiss

Mitglied
Hallo zusammen, nach langer Zeit habe ich wieder versucht zu programmieren und habe eine dringende Frage.
Ich lese den folgenden Inhalt ein:
Code:
Concept
soft top cove
tonneau cove
interior persennin
Concept
Innen
Innenraum
Platz im Inneren

und will am Ende den folgenden Output erzeugen:

Code:
lemma, surface
soft top cove, tonneau cove|interior persennin
Innen, Innenraum|Platz im Inneren

Das Problem für mich ist:

wie sieht es in Code aus, damit ich:
1. Die erste Zeile nach dem Wort Concept als Lemma schriebe, dann Komma und dann die restlichen Zeilen bis zum nächsten Wort Concept mit einem senkrechten Strich trenne nämlich den folgenden Output erzeuge:
lemma, surface
soft top cove, tonneau cove|interior persennin


Mein bisheriger Code sieht so aus:

Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class Converter {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BufferedReader inputcsv = null;
             List <String> zeilencsv = new ArrayList<String>();
        try {
            inputcsv = Files.newBufferedReader(Paths.get("ErsteDatei.csv"));
            String content;
            while ((content = inputcsv.readLine()) != null) {
                zeilencsv.add(content);
               
                System.out.println(content);
            }
            File outputcsv = new File("TwoColumnsResult.csv");
            //legt die Datei an
            outputcsv.createNewFile();
            FileWriter csvFilewriter = new FileWriter(outputcsv);
            //Eine schleife, die durch die Arraylist geht und die Zeilen konvertiert und schreibt
            int counter_a=0;
            int counter = 1;
            for (String zeile:zeilencsv){
                String concept = "Concept";
                
                //== wird zu einer BEdingung;
                        if(zeile.toString().equals(concept)){
                       
                            zeile="lemma,surface";
                            for(String zeile2:zeilencsv){
                                //hier weiss ich nicht wie ich sagen soll füge die nächsten Zeilen bis zum nächsten Concept zusammen
                            }
               
                                                   
                           
                        }
                        else {
                           
                        counter++;
                       
}
                csvFilewriter.write(zeile+"\n");
                counter++;
            }
            //führt das Schreiben aus
            csvFilewriter.flush();
            //macht die Referenz auf die Datei zu
            csvFilewriter.close();
           
           
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

Jeder Tipp und Idee sind willkommen!
Danke
 
Code:
String output = "lemma, surface\nsoft top cove, tonneau cove|interior persennin\nInnen, Innenraum|Platz im Inneren"
 

Zurück
Oben