» »

Printanje na papir java problem

Printanje na papir java problem

javaMaster ::

Živjo,

Že 3 dni se ukvarjam z printanjem besedila iz datoteke na papir. Imam 3 datoteke glava, centralni del in noga. Glava in noga se ne spreminjata (usebina je vedno ista) edino centralni del se spreminja (se zapisuje v datoteko). Zdaj pa želim vse 3 datoteke združit ter to natisnit. To bi bil kot račun v trgovini. Eno enostavno rešit sem že uporabil ampak nisem dobil željenega rezultata. Problem nastane pri združitvi teh datotek (se povozijo med sabo in ostane samo zadnja)
Tukaj je koda, ki mi še vedno dela težave (težave mi delajo argumenti pri metodi print):

    try{


 InputStream io = new  FileInputStream (new File("src/paket/racun.txt"));
 InputStream io2 = new  FileInputStream (new File("src/paket/racunGlava.txt"));
 InputStream io3 = new  FileInputStream (new File("src/paket/racunNoga.txt"));

    JTextPane jtp = new JTextPane();
    jtp.setBackground(Color.white);


    int x;
    int y;
    int z;
    String rac=null;
    String glava=null;
    String noga=null;
    


    while (( y = io2.read()) != -1 ){
          glava= glava+ (char)y;
            jtp.setText(glava);
    }

     while (( x = io.read()) != -1 ){
          rac= rac+ (char)x ;
            jtp.setText(rac);
    }
     while (( z = io3.read()) != -1 ){
          noga= noga+ (char)z ;
            jtp.setText(noga);
    }

      jtp.print();
      io.close();
      io2.close();
      io3.close();
}
        catch (PrinterException ex) {
            Logger.getLogger(blagajna.class.getName()).log(Level.SEVERE, null, ex);
        }catch (IOException e){

    System.out.println(e.toString());

}
    } 


Imate kašno idejo, boljšo rešitev?
Hvala za pomoč!

Jeremias ::

Zakaj imaš samo zadnjo datoteko je zato, ker daješ jtp.setText. In to vedno zamenja text, ne dodaja texta. Poglej če mogoče podpira addText ali pa si vse te datoteke združi v en stringBuilder in potem ta string iz StringBuildera nastavi JTextPane-ju (v tvojem primeru jtp spremenljivki).
Lp
Jernej

javaMaster ::

Opala, zdaj deluje. Hvala Jeremias za pomoč! Ta StringBuilder prvič slišim, je pa zelo podoben StringBuffer-ju (podobne metode). Imam pa eno majceno težavo in sicer ko natisnem na papir se slog oz. oblikovanje spremeni (pač kakšna beseda gre malce po svoje - ni urejeno kot v datoteki) Mogoče veš kako se da to rešit? Vrjetno je problem v tem, da je to tekstovna datoteka (s txt datotekami se ne da sloga in oblikovanje urejat, pri docx pa ja, ampak potem se zakomplicira pri kodi).

Tukaj kos popravljene kode:
 while (( y = io2.read()) != -1 ){
          sb.append ((char)y);
          
    }

     while (( x = io.read()) != -1 ){
          sb.append ((char)x);
       
    }
     while (( z = io3.read()) != -1 ){
          sb.append ((char)z);
            
    }
    jtp.setText(sb.toString());

      jtp.print();
      io.close();
      io2.close();
      io3.close();
}

Zgodovina sprememb…

Spura ::

stringbuilder je stringbuffer brez sinhronizacije

javaMaster ::

Spura je izjavil:

stringbuilder je stringbuffer brez sinhronizacije

Aha, čemu pa služi ta sinhronizacija? Potem bi lahko uporabil tudi StringBuffer?

Hvala za info.

Jeremias ::

Lahko uporabiš StringBuffer, vender je v tvojem primeru redundanten in počasnejši. StringBuffer pride v poštev če delaš z nitmi in ti potem ni treba skrbet za sinhronizacijo.
Lp
Jernej

Spura ::

sinhronizacija preprecuje napacno delovanje v vecnitnem okolju. Do neke mere...
Stringbuilder je hitrejsi ker je brez sinhronizacije. Je pa na voljo samo od jave 6 naprej.

javaMaster ::

Hvala za info. Šele zdaj sem opazil odgovor:)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[JAVA] HTTPS client

Oddelek: Programiranje
173174 (1904) peterv6i
»

Java skeniranje map in podmap

Oddelek: Programiranje
61148 (1037) nightrage
»

[PHP]Zajem slike iz direktorija

Oddelek: Programiranje
51229 (1146) KernelPanic
»

[NALOGA][Java] Branje vsebine datoteke vzvratno

Oddelek: Programiranje
71606 (1548) SkIDiver
»

Kako pošiljanje datotek v JAVI.

Oddelek: Programiranje
141834 (1705) kopernik

Več podobnih tem