Zeilenende bei InputStream

Status
Nicht offen für weitere Antworten.

di3u

Mitglied
Tag,

woran erkenne ich eigentlich beim Einlesen einer CSV-Datei wann eine Zeile zuende gelesen wurde und in eine neue "gesprungen" wird?
Für mich heißt das nämlich, dass ich an dieser Stelle ganz gern eine neue Spalte in einer Tabelle erzeugen möchte.

Danke im Voraus!


Code-Auszug:
Code:
FormFile datei = inputForm.getFile();
StringBuffer sb = new StringBuffer();
sb.append("<table><tr>");
      
CSVParser csvParser = new CSVParser(datei.getInputStream());
sb.append("<tr>");
for ( String t; (t = csvParser.nextValue()) != null; ){
        sb.append("<td>"+t+"</td>");
}
sb.append("</tr></table>");


Im Moment würde also alles in der CSV-Datei hintereinander in eine Tabelle geschrieben werden 🙁
 
Hallo di3u,

ein Zeilenumbruch erkennst du an der Zeichenfolge "\r\n" (Windows) oder "\n" (Linux).
Der INT-Wert für "\r" = 13 und "\n" = 10. (InputStream.read())

Dein CSVParser sollte auf diese Zeichen(kette) prüfen und ein entsprechendes Object/String zurückgeben,
auf das du in der FOR-Schleife prüfen kannst.

Code:
FormFile datei = inputForm.getFile(); 
StringBuffer sb = new StringBuffer(); 
sb.append("<table><tr>"); 
      
CSVParser csvParser = new CSVParser(datei.getInputStream()); 
sb.append("<tr>"); 
for ( String t; (t = csvParser.nextValue()) != null; ){ 
        if ("NEWLINE".equals(t))                                      <-------
            sb.append("</tr><tr>");                                   <-------
        sb.append("<td>"+t+"</td>"); 
} 
sb.append("</tr></table>");

Grüße,
Matthias
 
MatthiasKnorr hat gesagt.:
Hallo di3u,

ein Zeilenumbruch erkennst du an der Zeichenfolge "\r\n" (Windows) oder "\n" (Linux).
Der INT-Wert für "\r" = 13 und "\n" = 10. (InputStream.read())

Dein CSVParser sollte auf diese Zeichen(kette) prüfen und ein entsprechendes Object/String zurückgeben,
auf das du in der FOR-Schleife prüfen kannst.

Code:
FormFile datei = inputForm.getFile(); 
StringBuffer sb = new StringBuffer(); 
sb.append("<table><tr>"); 
      
CSVParser csvParser = new CSVParser(datei.getInputStream()); 
sb.append("<tr>"); 
for ( String t; (t = csvParser.nextValue()) != null; ){ 
        if ("NEWLINE".equals(t))                                      <-------
            sb.append("</tr><tr>");                                   <-------
        sb.append("<td>"+t+"</td>"); 
} 
sb.append("</tr></table>");

Grüße,
Matthias
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben