Hallo,
ich lese aus einer Datenbank (PostgreSQL 8.1) Strings aus, die eine nicht unbeträchtliche Länge haben können. Geschätzt können die bis zu 200000 Zeichen lang werden.
Hierzu nutze ich folgenden Code:
Der String wird in row2R erstmal über einen Stream eingelesen, da die Methode getString() bereits nun beschriebenes Problem brachte:
Die einzelnen Zeichen sehen wie übereinandergelegt aus! Mit dem Code oben krieg ich es nun wenigstens hin dass die Zeichen in der Konsole richtig angezeigt werden. Das Verhalten der Textdatei, die mit out geschrieben wird hängt vom jeweiligen Editor aus. Also zB vi, midnightcommander zeigen es richtig an, gedit oder der in eclipse integrierte Editor nicht.
Und jetzt kommts: Wenn ich hinter out.write( cbuf, 0, len ); ein out.newLine() schreibe, habe ich gar keine Probleme. Allerdings erfordert das Dateiformat, dass innerhalb des Strings keine Zeilenumbrüche vorkommen.
Kann jemand nachvollziehen was ich meine und mir vielleicht einen Tip geben?
Vielen Dank
Biesterfeld
ich lese aus einer Datenbank (PostgreSQL 8.1) Strings aus, die eine nicht unbeträchtliche Länge haben können. Geschätzt können die bis zu 200000 Zeichen lang werden.
Hierzu nutze ich folgenden Code:
Code:
if( rs.next() ){
String row1S = rs.getString( row1 );
Reader row2R = rs.getCharacterStream( row2 );
if( row1S != null && row2R != null ){
out.write( ">"+ row1S);
out.newLine();
System.out.println(">"+row1S);
char[] cbuf = new char[255];
for( int len; ( len = row2R.read( cbuf ) ) != -1; ){
out.write( cbuf, 0, len );
System.out.println( cbuf );
}
out.newLine();
}
Der String wird in row2R erstmal über einen Stream eingelesen, da die Methode getString() bereits nun beschriebenes Problem brachte:
Die einzelnen Zeichen sehen wie übereinandergelegt aus! Mit dem Code oben krieg ich es nun wenigstens hin dass die Zeichen in der Konsole richtig angezeigt werden. Das Verhalten der Textdatei, die mit out geschrieben wird hängt vom jeweiligen Editor aus. Also zB vi, midnightcommander zeigen es richtig an, gedit oder der in eclipse integrierte Editor nicht.
Und jetzt kommts: Wenn ich hinter out.write( cbuf, 0, len ); ein out.newLine() schreibe, habe ich gar keine Probleme. Allerdings erfordert das Dateiformat, dass innerhalb des Strings keine Zeilenumbrüche vorkommen.
Kann jemand nachvollziehen was ich meine und mir vielleicht einen Tip geben?
Vielen Dank
Biesterfeld