string trennen

mariusbopp

Bekanntes Mitglied
hallo ich hab heute mit bd's angefangen ich lese datensätze aus der db aus zeige diese in der console an und möchte diese dann in eine txt datei schreiben okay klappt alles soweit bis auf die tatsache das in der text datei die einzelnen strings aneinander gereit sind(abgesehn davon das auch nur einer angezeigt wird da noch keine schleife drum is)!

frage die kann ich es machen das sie nicht mehr zusammen stehen?

vill ist mein code nicht der eleganteste aber es geht soweit ja:toll:

Java:
package datenbank2;
import java.sql.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MeineErsteAbfrage {

static Connection con = null;
static Statement stmt = null;
static ResultSet rs = null;

    public static void main(String args[]) throws InstantiationException, IllegalAccessException, FileNotFoundException {
    try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    }
   catch (ClassNotFoundException e){
    e.printStackTrace();
    System.exit(1);
    }
    try{
    con = DriverManager.getConnection
            ("jdbc:mysql://localhost/test","root","****");
    stmt=con.createStatement();
    rs=stmt.executeQuery
            ("SELECT * FROM test_tabelle");
    while(rs.next()){
        System.out.println("nr: "+rs.getString(1));
        System.out.println("name: "+rs.getString(2));
        System.out.println("name: "+rs.getString(3));
        System.out.println("name: "+rs.getString(4));
        System.out.println("*************************");

        FileOutputStream fileOut =
               new FileOutputStream("test3.txt"); //datei name


       String text = rs.getString(1);
       String text2=rs.getString(2);
       String text3=rs.getString(3);
       String text4=rs.getString(4);

                try {
                    fileOut.write(text.getBytes(), 0 , text.length());
                    fileOut.write(text2.getBytes(), 0 , text2.length());
                    fileOut.write(text3.getBytes(), 0 , text3.length());
                    fileOut.write(text4.getBytes(), 0 , text4.length());
                } catch (IOException ex) {
                    Logger.getLogger(MeineErsteAbfrage.class.getName()).log(Level.SEVERE, null, ex);
                }
                try {
                    fileOut.close();
                } catch (IOException ex) {
                    Logger.getLogger(MeineErsteAbfrage.class.getName()).log(Level.SEVERE, null, ex);
                }
    }
    stmt.close();
    con.close();
    }
    catch(SQLException e){
    e.printStackTrace();
    return;
    }
   }
}
die ausgabe in der txt datei is dann so:
Code:
1mariusboppstraß
 
nach jedem
fileOut.write(text.getBytes(), 0 , text.length());
dann nochmal ein eintrag mit
fileOut.write(komma.getBytes(), 0 , komma.length());

??????
oder is es eleganter zu lösen
 
ja zb BufferedWriter benutzen...

Java:
      String trenner = " "; //oder "\t"; für tab
      
      BufferedWriter writer = new BufferedWriter(new FileWriter("test3.txt"));
      writer.write("Bier");
      writer.write(trenner);
      writer.write("Schnaps");
      writer.write(trenner);
      writer.write("Wein");

      writer.close();
 
txt-Dateien besser mit FileWriter schreiben, nicht (nur) mit Stream,
irgendein Beispiel vorher im Internet angeschaut, welches einen Text in eine Datei schreibt?

ach, was frag ich, du bist es ja wieder, hochkomplexe Themen mit 2 Wochen-Java-Erfahrung, 5 Frage-Threads pro Tag 😉
 
oder wenn du das nicht willst, anstelle von
Java:
String text = rs.getString(1);

Java:
String text = rs.getString(1) + " ";
 
Warum machst du nicht einfach einen StringBuilder und schreibst es dann gebuffert in dein File?
Edit: die Leute hier sind wirklich wirklich schnell ^^
 
ich würde das erzeugen der zu schreibende Zeile sowieso in eine Methode auslagern....

Java:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

   public static void main(String[] args) throws IOException {     
      
      BufferedWriter writer = new BufferedWriter(new FileWriter("test3.txt"));
      
      String[] values = {"eins", "zwei", "drei"};
      writer.write(createLine(values, " "));      
      writer.close();
  
}
   
   public static String createLine(String[] parts, String seperator){
      StringBuilder builder = new StringBuilder();
      for(String part: parts){
         builder.append(part);
         builder.append(seperator);
      }
      return builder.toString();
   }

}
 
txt-Dateien besser mit FileWriter schreiben, nicht (nur) mit Stream,
irgendein Beispiel vorher im Internet angeschaut, welches einen Text in eine Datei schreibt?

ach, was frag ich, du bist es ja wieder, hochkomplexe Themen mit 2 Wochen-Java-Erfahrung, 5 Frage-Threads pro Tag 😉

:lol: danke danke

nein natürlich hab ich es mir vorher mal angeguckt dann hab ich was geschrieben wo man einen text eingeben kann egal wie lang und der dann in die txt datei geschrieben wird...joa dann wollte ich einfach mal gucken ob ich dann auch anstelle vom text einfach meine db felder nehmen kann:toll:

aber ich finde es toll das hier einem versucht wird zu helfen salterB hat schon festgesellt das ich viele und vill auch viele dumme fragen stelle aber joa ich bin grade in der lernphase!!! also danke an diejenigen die gedult mit mir haben und es versuchen zu erklären:toll::toll:
 

Zurück
Oben