Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Cuvanje podataka u fajl...

[es] :: Java :: Cuvanje podataka u fajl...

[ Pregleda: 4273 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Cuvanje podataka u fajl...05.09.2006. u 09:28 - pre 213 meseci
Recimo da imam neki jednostavni java programcic koji je slican sledecem

Code:

import java.util.*;

public class Test {
    
public static void main (String args[]){
    
Scanner ulaz = new Scanner (System.in);
    
String text = new String();    
System.out.println("Unesite neki txt: ");
text=ulaz.next();


}
}


Zanima me kako da text koji korisnik unese sacuvam za stalno u neki .txt .doc
ili neki treci format kako bi unijeti podaci bili dostupni nakon ponovnog pokretanja
aplikacije?

Pozdrav.
 
Odgovor na temu

kaizen

Član broj: 83416
Poruke: 23
82.117.206.*

Sajt: rors.org


Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 10:01 - pre 213 meseci
Tekstualni fajl: http://javaalmanac.com/egs/java.io/WriteToFile.html

Za .doc ti već treba neka biblioteka, pogledaj: http://jakarta.apache.org/poi/

 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.etf.bg.ac.yu.



Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 10:17 - pre 213 meseci
Koristi klasu BufferedReader za citanje iz fajla na sledeci nacin:
Code:
BufferedReader r = new BufferedReader(new FileReader("fajl.txt"));

Najcesce koriscena metoda za citanje iz fajla ove klase je:
Code:
public String readLine()


a za pisanje u fajl klasu BufferedWriter na sledeci nacin:
Code:
BufferedWriter w = new BufferedWriter(new FileWriter("fajl.txt"));


Najcesce koriscena metoda za pisanje u fajl ove klase je:
Code:
public void write(String str)


ali ne zaboravi da na kraju pisanja u fajl pozoves
Code:
w.flush();

cime se podaci stvarno upisuju u fajl (do ovog poziva su bili u RAM-u)

i na kraju pozovi
Code:
w.close();

 
Odgovor na temu

kaizen

Član broj: 83416
Poruke: 23
82.117.206.*

Sajt: rors.org


Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 10:23 - pre 213 meseci
Citat:
rj444:
ali ne zaboravi da na kraju pisanja u fajl pozoves
Code:
w.flush();

cime se podaci stvarno upisuju u fajl (do ovog poziva su bili u RAM-u)

i na kraju pozovi
Code:
w.close();


Eksplicitni poziv flush metode je suvišan. Iz dokumentacije http://java.sun.com/j2se/1.5.0/docs/api/java/io/Writer.html#close()
Code:

close
public abstract void close()
                    throws IOException

    Close the stream, flushing it first....

 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 14:30 - pre 213 meseci
OK. Skapirao sam ovo, hvala na pomoci.
E sad zanima me kako da podatke iz TextPolja, Liste i slicno takodje pohranim u takav neki fajl.
Evo jednostavnog koda:

Code:

import java.io.*;
import java.awt.*;
import javax.swing.*;

public class Test {

    //pravim okvir
    static JFrame prozor = new JFrame("UPISIVNE PODATAKA");
    
public static void main (String args[]){
    
FlowLayout menadzer = new FlowLayout();//pravi men.
Container sadrzaj = prozor.getContentPane();
sadrzaj.setLayout(menadzer);//podrazumjevani mendz. postavljen

JLabel labela = new JLabel("Unesite Neki Text:");//pravim labelu
JTextField unos = new JTextField (15);//pravim polje za unos
JButton snimi = new JButton ("SACUVAJ UNOS");//pravim dugme

//dodajem komponente
sadrzaj.add(labela);
sadrzaj.add(unos);
sadrzaj.add(snimi);

prozor.setBounds(100,100,500,500);
prozor.setVisible(true); //prikazujem prozor sa el.

//e sad kako da ga sacuvam:)
}

}


Pokusao sam ovako:

Code:

try {
    BufferedWriter out = new BufferedWriter(new FileWriter("C:/moj_dir/moj_fajl.txt",true));//upisuje u moj_fajl
    //ako se stavi true kao argument pamtice i ono sto smo ranije upisali
    
    out.write(unos);//upisuje string text
    out.close(); //zatvara 
} catch (IOException e) { //hvata greske
}


to sa stringovima radi bez problema ali ne moze da pokupi podatke iz text polja, vec naravno javlja gresku.

Kako da rijesim problem :)
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.etf.bg.ac.yu.



Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 15:42 - pre 213 meseci
Samo iz text polja (pretpostavljam da mislis na JTextField) dohvati String metodom
Code:
getText()

pa onda pozovi metodu write sa tim stringom.
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 18:16 - pre 213 meseci
Pokusavao sam i ranije ali ocito da nedje grijesim.
Treba li da pozivam neki dogadjaj ili nesto slicno jer kad u gornji kod dodam:

Code:

String iz_unosa = unos.getText();

//pa to pokusam da upisem ili pak prikazem

try {
    BufferedWriter out = new BufferedWriter(new FileWriter("C:/moj_dir/moj_fajl.txt",true));//upisuje u moj_fajl
    //ako se stavi true kao argument pamtice i ono sto smo ranije upisali
    
    out.write(iz_unosa);//upisuje string text
    out.close(); //zatvara 
} catch (IOException e) { //hvata greske
}

System.out.println ("Unijeli ste: "+iz_unosa);
}


Nema rezultata :(
Mnogo bi mi znacilo ako bi neko mogao da mi da primjer jednostavan sa komentarima kako ovo funkcionise.

 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
212.200.220.*



+13 Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 19:01 - pre 213 meseci
Ako mislis da ti neko pomogne - daj ceo kod i tacnu gresku koja ti se javlja.
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Cuvanje podataka u fajl...05.09.2006. u 20:28 - pre 213 meseci
Citat:
Šahbaz: Pokusavao sam i ranije ali ocito da nedje grijesim.
Treba li da pozivam neki dogadjaj ili nesto slicno jer kad u gornji kod dodam: ...

U okviru dogadjaja koji oznacava pritisak na dugme snimi, treba da uzmes podatke iz forme i pozoves metodu za upis sadrzaja forme u fajl, npr.
Code:

   ...
   snimi.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
         snimiUFajl(unos.getText());
      }
   });
   ...
   public void SnimiUFajl(String data) {
   // ovde ide kod koji upisuje u fajl
   }

Owl
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 12:12 - pre 213 meseci
Citat:
Vanja Petreski: Ako mislis da ti neko pomogne - daj ceo kod i tacnu gresku koja ti se javlja.


EVO KODA:

Code:

import java.awt.*;
import javax.swing.*; 
import java.awt.Event;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class Test2 {
    
static JFrame prozor = new JFrame("Uspsivanje Podataka");

public static void main (String args[]){
    
FlowLayout mendz = new FlowLayout();
Container sadrzaj = prozor.getContentPane();
sadrzaj.setLayout(mendz);

//komponente
JLabel poruka = new JLabel ("Unesite neki text");
JTextField unos = new JTextField (15);
JButton snimi = new JButton("SNIMI");

//dodajem ih u prozor
sadrzaj.add(poruka);
sadrzaj.add(unos);
sadrzaj.add(snimi);
    
prozor.setBounds(100,100,200,200);
prozor.setResizable(false);
prozor.setVisible(true);

//pravim string u kom ce biti podaci iz unosa
String iz_unosa = unos.getText();

//sada hocu da nakon klika na dugme snimi upisem podatke
try {
    BufferedWriter out = new BufferedWriter(new FileWriter("C:/moj_dir/moj_fajl.txt",true));//upisuje u moj_fajl
    //ako se stavi true kao argument pamtice i ono sto smo ranije upisali
    
    out.write(iz_unosa);//upisuje string text
    out.close(); //zatvara 
} catch (IOException e) { //hvata greske
}

System.out.println ("Unijeli ste: "+iz_unosa);


}}



Ne prijavljuje nikakvu gresku samo ne cuva text koji korisnik unese preko JTextField unos
 
Odgovor na temu

mikorkns
Software developer
Novi Sad

Član broj: 35748
Poruke: 26
*.ADSL.neobee.net.



Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 13:33 - pre 213 meseci
Nedostaje ti akcija na dugme...

Pozz.
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 14:21 - pre 213 meseci
Rijesio sam problem :)
Evo nesto drugacijeg koda, mozda nekome zatreba..
Code:

import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;

public class Upisivanje_U_Fajl extends JFrame implements ActionListener{
    JTextField unos = new JTextField (15);    
    JButton snimi = new JButton("SNIMI");
    JLabel naslov = new JLabel ("Unesite neki txt");
    
public Upisivanje_U_Fajl (){
    
super ("Upisivanje Podataka u Fajl...");    
FlowLayout mendz = new FlowLayout();
Container sadrzaj = getContentPane();
sadrzaj.setLayout(mendz);

sadrzaj.add(naslov);
sadrzaj.add(unos);
sadrzaj.add(snimi);

snimi.addActionListener(this);

setBounds(100,100,200,200);
setResizable(false);
setVisible(true);

}


public void actionPerformed (ActionEvent e){

    String dogadjaj=e.getActionCommand();
    if (dogadjaj.equalsIgnoreCase("snimi")){
        try {
            BufferedWriter out = new BufferedWriter(new FileWriter("C:/moj_dir/moj_fajl.txt",true));
            //upisuje u moj_fajl
            //ako se stavi true kao argument pamtice i ono sto smo ranije upisali
            String iz_unosa = unos.getText()+"VUNA";
            out.write(iz_unosa);//upisuje string text
            out.close(); //zatvara 
        } catch (IOException t) { //hvata greske
        }
    }

}

public static void main (String args[]){
    
new Upisivanje_U_Fajl();
}

}


Hvala svima na pomoci!
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.com
Via: [es] mailing liste



+64 Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 14:41 - pre 213 meseci
>

kako mozes da imas try{} bez catch(){}


zar BufferedWriter ne baca IOException?

nn
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 16:36 - pre 213 meseci
@nemnesic
Ocito da nisi pazljivo pogledao kod, postoji catch (IOException t).

Da ne otvaram novu temu pitacu ono sto me zanima ovdje...
Dakle sada "aplikacija" radi to sto mi treba ali, treba mi jos nesto
Kako da mi se svaki novi unos iz aplikacije u txt fajlu prebaca u novi red (\n na kraju stinga nije resenje).

I jos nesto..
Kako da izbrisem neki stirng iz fajla?

Primjer.
Line 1. Ime: Bojan, Prezime:kakpapa
Line 2. Ime: Marko, Prezime:Markovic

I hocu da izbrisem Line 2 kako to da izvedem ?

 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.com
Via: [es] mailing liste



+64 Profil

icon Re: Cuvanje podataka u fajl...06.09.2006. u 16:42 - pre 213 meseci
Code:
out.close(); //zatvara         } catch (IOException t) { //hvata 
greske 



ovo je comment pa zato nisam primetio.

nn
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Cuvanje podataka u fajl...08.09.2006. u 21:00 - pre 213 meseci
I jel moze neko da mi pomogne (vezano za prethodni post)?
Svaki link je dobrodosao
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Cuvanje podataka u fajl...09.09.2006. u 22:10 - pre 213 meseci
Pa najlakse bi bilo da ceo fajl prebacis u memoriju u vidu neke strukture (tipa liste), izvrsis potrebne izmene i onda tu strukturu prebacis u fajl.
Owl
 
Odgovor na temu

Srdjan_pmf
Srdjan Poznic
Novi Sad

Član broj: 86104
Poruke: 32
*.internet.krstarica.net.



Profil

icon Re: Cuvanje podataka u fajl...13.09.2006. u 15:08 - pre 213 meseci
Evo ti jedan deo pa malo probaj.
Ako ti treba npr da procitas red iz fajla, onda ga stavljas samo jednom, a ako ti je
zadatak takav da svaki red fajla ispitujes, onda ga stavis jednom pre neke petlje u kojoj
radis to neko ispitivanje i stavljas ga na kraju petlje.
evo primera

Code:

 BufferedReader ucitaj = new BufferedReader(new FileReader("ulaz.txt"));
 PrintWriter out = new PrintWriter(new FileOutputStream("izlaz.txt"));
 String str = ucitaj.readLine();
   
    ...
    ...

    for (...)
      {
        ...  //neka ispitivanja, zavisi od problema koji imas u zadatku
        ...
        str = ucitaj.readLine();  
                  // znaci kad si zavrsio rad sa tim redom, ucitava se sledeci red
      }
         


znaci, probaj ovo da iskoristis da ti brise ili sta ti vec trebas.
A sa write probaj tako da upisujes u fajl.
Mozes i da stavis neku promenljivu tipa String pa da ispitujes sa equal dok ne dodjes u fajlu
do reci koju zelis da brises ili sta vec...

pozdrav!
 
Odgovor na temu

[es] :: Java :: Cuvanje podataka u fajl...

[ Pregleda: 4273 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.