neue Zeile einfügen

gazale_m

Mitglied
Hallo,

Ich weiß das es super einfach ist aber mein Programm ist für meine Java Erkenntnisse zu kompliziert geworden.

-Wie kann ich in mein CSV Datei statt :

ID;RESULT;NOTE

Bestellwesen_und_Bestand/Suche/ABBA


So schreiben das die ältere Zeilen nicht überschrieben werden und immer eine neue Datei zugefügt wird(es funktioniert nicht mit "/r/n"):

ID;RESULT;NOTE (immer das gleiche Titel)

Bestellwesen_Bestand/Suche/1354/Erfolgreich
Bestellwesen_Bestand/Suche/1354
Bestellwesen_Bestand/Suche/ABBA

here ein Teil von meine Code (es ist nicht wie profis aber es funktioniert so weit):


Code:
try {
     
    while ((line =br.readLine())!=null)
    {
    // so lange es nicht leer ist wird gelesen 
    //line=line+line;
    System.out.println(line); 
    //StringTokenizer st = new StringTokenizer(line,",");
    //System.out.println(st);
    // einnahmen werden in console geschrieben
    
    line=line+line;
    
    if (i>=9 && i<11)

.
.
.
 try {
     Process p = Runtime.getRuntime().exec( cmd );
     // cmd wird ausgeführt
     int exitVal=p.waitFor();
     System.out.println("Process exitValue: "+ exitVal);
     //schreibt die Datei in output.csv
     FileWriter f = new FileWriter("c:/output.csv");
     PrintWriter print=new PrintWriter(f);
     
     print.println("ID,RESULT,NOTE");
     print.println();
     
     
     if (exitVal == 0){      
      print.println(ID+" , PASS , "+sTestFileId); }
     else{
      print.println(ID+" , FAIL , "+sTestFileId);}
     f.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
    }
    
    i++;


Gruß
Gazale
 
Wenn du etwas an eine bestehende Datei anhängen möchtest musst du dem FileWriter nur noch ein true mit übergeben:
Java:
FileWriter f = new FileWriter("c:/output.csv",true);
 
-danke Dir, es hat funktioniert. obwohl es jetz so aussieht:

ID,RESULT,NOTE

Bestellwesen_und_Bestand/Suche/ABBA-Suche/LINDA-1531 , PASS , xx


ID,RESULT,NOTE

Bestellwesen_und_Bestand/Unterformulare_Zeitraumueberschneidung , PASS , xx

ID,RESULT,NOTE

Bestellwesen_und_Bestand/Suche/ABBA-Suche/LINDA-1531 , PASS , xx

-wie kann ich den "ID,RESULT,NOTE" nur einmal haben? das heisst dass der Pointer gleich zu den zweite Zeile geht?
 
Prüft doch mit
Java:
boolean exists = new File("c:/output.csv").exists();
ob die Datei schon existiert. Dann schreibst du die Zeile mit ID, Result, Note nicht rein:

Java:
Process p = Runtime.getRuntime().exec( cmd );
     // cmd wird ausgeführt
     int exitVal=p.waitFor();
     System.out.println("Process exitValue: "+ exitVal);
     boolean exists = new File("c:/output.csv").exists();
     //schreibt die Datei in output.csv
     FileWriter f = new FileWriter("c:/output.csv");
     PrintWriter print=new PrintWriter(f);
     
     if(!exists){
     print.println("ID,RESULT,NOTE");
     print.println();
    }
     
     
     if (exitVal == 0){      
      print.println(ID+" , PASS , "+sTestFileId); }
     else{
      print.println(ID+" , FAIL , "+sTestFileId);}
     f.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
    }
 
Zurück