2010-04-08 5 views
0
SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy_HHmmSS"); 
    String strCurrDate = formatter.format(new java.util.Date()); 
    String strfileNm = "Customer_" + strCurrDate + ".txt"; 
    String strFileGenLoc = strFileLocation + "/" + strfileNm; 
    String Query1="select '0'||to_char(sysdate,'YYYYMMDD')||'123456789' class_code from dual"; 
    String Query2="select '0'||to_char(sysdate,'YYYYMMDD')||'123456789' class_code from dual"; 
    String Query3="select param from dual"; 
    try { 
    Statement stmt = null; 
    ResultSet rs = null; 
    Statement stmt1 = null; 
    ResultSet rs1 = null; 

    stmt = conn.createStatement(); 
    stmt1 = conn.createStatement(); 
    stmt2 = conn.createStatement(); 
    rs = stmt.executeQuery(Query1); 
    rs1 = stmt1.executeQuery(Query2); 
    rs2 = stmt2.executeQuery(Query3); 

File f = new File(strFileGenLoc); 
OutputStream os = (OutputStream)new FileOutputStream(f,true); 
String encoding = "UTF8"; 
OutputStreamWriter osw = new OutputStreamWriter(os, encoding); 
BufferedWriter bw = new BufferedWriter(osw); 

while (rs.next()) { 

    bw.write(rs.getString(1)==null? "":rs.getString(1)); 
    bw.write(" "); 


} 
bw.flush(); 
bw.close(); 
} catch (Exception e) { 
System.out.println(
    "Exception occured while getting resultset by the query"); 
e.printStackTrace(); 
} finally { 
try { 
    if (conn != null) { 
     System.out.println("Closing the connection" + conn); 
     conn.close(); 
    } 
} catch (SQLException e) { 
    System.out.println(
     "Exception occured while closing the connection"); 
    e.printStackTrace(); 
    } 
} 
    return objArrayListValue; 
} 

    The above code is working fine. it writes the content of "rs" resultset data in text file 

    Now what i want is ,i need to append the 


    the content in "rs2" resultset to the "same text file"(ie . i need to append "rs2" content with "rs" content in the same text file).. 

    ------------------edit part---------------- 

    stmt = conn.createStatement(); 
    stmt1 = conn.createStatement(); 
    stmt2 = conn.createStatement(); 
    rs = stmt.executeQuery(Query1); 
    rs1 = stmt1.executeQuery(Query2); 
    rs2 = stmt2.executeQuery(Query3); 


    while (rs.next()) { 

    while(rs1.next()){ 

      while(rs2.next()){ 

    bw.write(rs.getString(1)==null? "":rs.getString(1)); 
     bw.write("\t"); 
    bw.write(rs1.getString(1)==null? "":rs1.getString(1)); 
    bw.write("\t"); 
    bw.write(rs2.getString(1)==null? "":rs2.getString(1)); 
    bw.write("\t"); 

    bw.newLine(); 

      } 
    } 
} 

Le code ci-dessus fonctionne correctement. Mon problème estAjouter des données au même fichier texte en utilisant java

  1. "rs" ResultSet contient un enregistrement de la table
  2. "RS1" ResultSet contient 5 enregistrement de la table
  3. "RS2" ResultSet contient 5 enregistrement de la table

Les données "rs" deviennent récursives.

en écrivant au même fichier texte, la sortie je reçois comme

1 2 3 
1 12 21 
1 23 25 
1 10 5 
1 8 54 

mais je besoin d'une sortie comme ci-dessous

1 2 3 
    12 21 
    23 25 
    10 5 
    8 54 

Quelles sont les choses que je dois changer dans mon code .. S'il vous plaît conseils

-----------------edit part1------------------ 


     Expected Result is 

      1 2 3 
      1 12 21 
      1 23 25 
      1 10 5 
      1 8 54 

    but output i got like 

      1 2 3 
      12 21 
      23 25 
      10 5 
      8 54 

Répondre

2
new FileOutputStream(f,true); 

Vous avez déjà défini l'indicateur append sur true (le deuxième argument), faites donc la même chose que ce que vous avez fait avec le jeu de résultats précédent.

Voir: http://java.sun.com/javase/6/docs/api/java/io/FileOutputStream.html

+0

Aucun problème. Bien que j'ai ajouté par erreur un lien vers l'objet FileWriter au lieu de votre FileOutputStream suggéré. Ma réponse (que j'ai supprimée car elle était similaire à la vôtre) contenait un lien FileWriter ... –

+0

par temps je dois faire une modification ici? Le jeu de résultats "rs" contient une donnée et le jeu de résultats "rs1" contient 10 données. Comment boucler "rs2" ici. s'il vous plaît répondre ASAP..Its urgents .. while (rs.next()) { bw.write (rs.getString (1) == null "": rs.getString (1)) ; bw.write (""); } – Manu

+0

J'ai un problème ici – Manu

Questions connexes