Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

java ispis datoteka

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Računarski praktikum 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
grossi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 04. 2004. (16:33:41)
Postovi: (5D)16
Spol: muško
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Delta Neretva

PostPostano: 16:29 pet, 19. 11. 2004    Naslov: java ispis datoteka Citirajte i odgovorite

Trebam se rekurzivno kretati i ispisivati imena datoteka i direktorija.
ispise mi citav put i ne udje mi u if naredbu.

[code:1]

import java.io.*;

public class Ispis {

private File f; //datoteka koje zelimo obrisati
private Filename imedatoteke; //ime datoteke kao string
public Ispis(){

f=new File(".");


}

private char pathSeparator;

public Ispis(Filename imedatoteke){

this.imedatoteke=imedatoteke;

f = new File(imedatoteke.toString());
}

/*
metoda vraca informacije o datoteci
*/

void ispis_informacija(){

System.out.println("Vi pokusavatate ispisati datoteku: " +
f.getAbsolutePath());
}

public String toString(){
if(!(f.isDirectory())){
System.out.println("Test"); //----------ovo mi ne ispise, ne udje unutra------
return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
}else return imedatoteke.getFilename();
}

//metoda brise datoteku ili direktorij ako je prazan
public void ispis(int Nivo) {


if (!f.exists())

greska("Doslo je do greske " +f);



// ako je direktorij vidi da li je prazan

for(int i=0;i<Nivo-1;i++){
System.out.print(" ");
}
if (!f.isDirectory())
System.out.println(" "+f);
if (f.isDirectory()) {

String[] dat = f.list();
//polje koje sadrzi listu s apstraktni imenima datoteka

if (dat.length > 0) {
System.out.println(" +"+f);
Nivo++;
for(int i=0; i<dat.length;i++){
Filename file = new Filename(f.toString()+'/'+dat[i], '/', '.');
Ispis Temp = new Ispis(file);
Temp.ispis(Nivo);
}
}else{
System.out.println(" -"+f);

}

}

}

/*
ovdje procesiramo sve neuspjehe
*/

protected void greska(String poruka)
throws java.lang.IllegalArgumentException {
throw new java.lang.IllegalArgumentException(poruka);
}
}


// Ova klasa procesira string i ispituje da li je string
//kvalificirano ime za direktorij na odredjenoj platformi
//ne provjerava da li taj file zaista postoji

public class Filename {

private String fullPath; //kompletan put do file npr c:\java\Hello.java
//ili npr /java/Hello.java na UNIX-u

private char pathSeparator; //separator / ili \
private char extensionSeparator; //separator za ekstenziju .

public Filename(String str, char sep, char ext) {
fullPath = str;
pathSeparator = sep;
extensionSeparator = ext;
} // uocite inicijalizaciju konstruktorom jer su private
public String toString(){
return fullPath;
}

public String getExtension() {

int dot = fullPath.lastIndexOf(extensionSeparator);
// int lastIndexOf(int ch) vraca poslijednji indeks na kojem se pojavljuje ch
// ukoliko se ch ne pojavljuje vraca -1
return fullPath.substring(dot +1);
}

public String getFilename() {
int dot = fullPath.lastIndexOf(extensionSeparator);
int sep = fullPath.lastIndexOf(pathSeparator);

return fullPath.substring(sep + 1, dot);
}

public String getPath() {
int sep = fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(0, sep);
}
}



public class Test {
/*
-testira klasu Obrisi
-kao jedini argument uzima s komandne linije ime datoteke
*/

public static void main(String[] args) {


if (args.length >= 1) {

try {
Filename file = new Filename(args[0].toString(), '/', '.');
Ispis ob= new Ispis(file);
ob.ispis(1);


}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}

else{
try {
Ispis ob= new Ispis();
ob.ispis(1);


}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}

}
[/code:1]


Moj primjer ispisa je ovaj:
[code:1] +c:\java\pretrazivanje
c:\java\pretrazivanje\.nbattrs
c:\java\pretrazivanje\pretrazivanje.class
c:\java\pretrazivanje\pretrazivanje.java
+c:\java\prgoram4
+c:\java\prgoram4\polar
c:\java\prgoram4\polar\.nbattrs
c:\java\prgoram4\polar\KompleksanBroj.class
c:\java\prgoram4\polar\KompleksanBroj.java
c:\java\prgoram4\polar\PolarKompleks.class
c:\java\prgoram4\polar\PolarKompleks.java
c:\java\prgoram4\Test.class
c:\java\prgoram4\Test.java
+c:\java\stog
c:\java\stog\Algoritam.class
c:\java\stog\algoritam.java
c:\java\stog\element.java
c:\java\stog\Implementacija.class
c:\java\stog\Implementacija.java
c:\java\stog\stog.class
c:\java\stog\stog.java

[/code:1]

Ja bih tija ovakav ispis
[code:1]
+pretrazivanje
.nbattrs
pretrazivanje.class
pretrazivanje.java
+ prgoram4
+ polar
.nbattrs
KompleksanBroj.class
KompleksanBroj.java
PolarKompleks.class
PolarKompleks.java
Test.class
Test.java
+ stog
Algoritam.class
algoritam.java
element.java
Implementacija.class
Implementacija.java
stog.class
stog.java
[/code:1]


Moze li mala pomoc.
Hvala
Trebam se rekurzivno kretati i ispisivati imena datoteka i direktorija.
ispise mi citav put i ne udje mi u if naredbu.

Kod:


import java.io.*;

public class Ispis {

    private File f; //datoteka koje zelimo obrisati
    private Filename imedatoteke; //ime datoteke kao string
    public Ispis(){
   
        f=new File(".");
       
       
    }
   
     private char pathSeparator;
   
    public Ispis(Filename imedatoteke){
 
        this.imedatoteke=imedatoteke;

        f = new File(imedatoteke.toString());
    }

    /*
    metoda vraca informacije o datoteci
    */

    void   ispis_informacija(){
 
    System.out.println("Vi pokusavatate ispisati datoteku: " + 
    f.getAbsolutePath());     
    }
   
   public String toString(){
      if(!(f.isDirectory())){
       System.out.println("Test");       //----------ovo mi ne ispise, ne udje unutra------
       return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
      }else return imedatoteke.getFilename();
   }

    //metoda brise datoteku ili direktorij ako je prazan
    public  void ispis(int Nivo) {

     
        if (!f.exists())
            
          greska("Doslo je do greske " +f);
       
       

        // ako je direktorij vidi da li je prazan

        for(int i=0;i<Nivo-1;i++){
            System.out.print("  ");
        }
         if (!f.isDirectory())
            System.out.println("  "+f);
        if (f.isDirectory()) {
           
            String[] dat = f.list();
             //polje koje sadrzi listu s apstraktni imenima datoteka
 
            if (dat.length > 0) {
                System.out.println(" +"+f);
                Nivo++;
                for(int i=0; i<dat.length;i++){
                Filename file = new Filename(f.toString()+'/'+dat[i],  '/', '.');
                Ispis Temp = new Ispis(file);
                Temp.ispis(Nivo);
                }
            }else{
                    System.out.println(" -"+f);
                   
                }
           
        }
   
    }

    /*
    ovdje procesiramo sve neuspjehe
    */

    protected void greska(String poruka)
             throws java.lang.IllegalArgumentException {
        throw new java.lang.IllegalArgumentException(poruka);
    }
}


// Ova klasa procesira string i ispituje da li je string
//kvalificirano ime za direktorij na odredjenoj platformi
//ne provjerava da li taj file zaista postoji

public class Filename {

      private String fullPath; //kompletan put do file npr c:\java\Hello.java
                               //ili npr /java/Hello.java na UNIX-u
 
      private char pathSeparator;      //separator / ili \
      private char extensionSeparator; //separator za ekstenziju .
                                                       
      public Filename(String str, char sep, char ext) {
          fullPath           = str;
          pathSeparator      = sep;
          extensionSeparator = ext;
      }   // uocite inicijalizaciju konstruktorom jer su private
     public String toString(){
      return fullPath;
}
     
      public String getExtension() {
       
         int dot = fullPath.lastIndexOf(extensionSeparator);
                // int lastIndexOf(int ch) vraca poslijednji indeks na kojem se pojavljuje ch
                // ukoliko se ch ne pojavljuje vraca -1
         return fullPath.substring(dot +1);
    }

    public String getFilename() {
        int dot = fullPath.lastIndexOf(extensionSeparator);
        int sep = fullPath.lastIndexOf(pathSeparator);
       
        return fullPath.substring(sep + 1, dot);
    }

    public String getPath() {
        int sep = fullPath.lastIndexOf(pathSeparator);
        return fullPath.substring(0, sep);
    }
}



public class Test {
    /*
     -testira klasu Obrisi
     -kao jedini argument uzima s komandne linije ime datoteke   
    */

    public static void main(String[] args) {
     
       
    if (args.length >= 1) {
   
        try {
            Filename file = new Filename(args[0].toString(),  '/', '.');
             Ispis ob= new Ispis(file);
        ob.ispis(1);
             

}
        catch (IllegalArgumentException e) {
       System.err.println(e.getMessage());
   }
    }
   
    else{
        try {
             Ispis ob= new Ispis();
        ob.ispis(1);
             

}
        catch (IllegalArgumentException e) {
       System.err.println(e.getMessage());
   }
    }
    }     
   
}



Moj primjer ispisa je ovaj:
Kod:
 +c:\java\pretrazivanje
      c:\java\pretrazivanje\.nbattrs
      c:\java\pretrazivanje\pretrazivanje.class
      c:\java\pretrazivanje\pretrazivanje.java
   +c:\java\prgoram4
     +c:\java\prgoram4\polar
        c:\java\prgoram4\polar\.nbattrs
        c:\java\prgoram4\polar\KompleksanBroj.class
        c:\java\prgoram4\polar\KompleksanBroj.java
        c:\java\prgoram4\polar\PolarKompleks.class
        c:\java\prgoram4\polar\PolarKompleks.java
      c:\java\prgoram4\Test.class
      c:\java\prgoram4\Test.java
   +c:\java\stog
      c:\java\stog\Algoritam.class
      c:\java\stog\algoritam.java
      c:\java\stog\element.java
      c:\java\stog\Implementacija.class
      c:\java\stog\Implementacija.java
      c:\java\stog\stog.class
      c:\java\stog\stog.java



Ja bih tija ovakav ispis
Kod:

   +pretrazivanje
      .nbattrs
      pretrazivanje.class
      pretrazivanje.java
   + prgoram4
     + polar
         .nbattrs
         KompleksanBroj.class
         KompleksanBroj.java
         PolarKompleks.class
         PolarKompleks.java
       Test.class
       Test.java
   + stog
       Algoritam.class
       algoritam.java
       element.java
       Implementacija.class
       Implementacija.java
       stog.class
       stog.java



Moze li mala pomoc.
Hvala



_________________
------------------------------------------
Toni Grossi

Nekretnine Nekretnine 24 sata
++++++++++++++++++++++
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 17:33 pet, 19. 11. 2004    Naslov: Citirajte i odgovorite

[code:1]public String toString(){
if(!(f.isDirectory())){
System.out.println("Test"); //----------ovo mi ne ispise, ne udje unutra------
return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
}else return imedatoteke.getFilename();
}[/code:1]

A gdje pozivas tu funkciju? :-k
Kod:
public String toString(){
      if(!(f.isDirectory())){
       System.out.println("Test");       //----------ovo mi ne ispise, ne udje unutra------
       return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
      }else return imedatoteke.getFilename();
   }


A gdje pozivas tu funkciju? Think



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
grossi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 04. 2004. (16:33:41)
Postovi: (5D)16
Spol: muško
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Delta Neretva

PostPostano: 17:40 pet, 19. 11. 2004    Naslov: Citirajte i odgovorite

[code:1]
if (!f.isDirectory())
System.out.println(" "+f);//--------tu je pozivam
if (f.isDirectory()) {

String[] dat = f.list();
//polje koje sadrzi listu s apstraktni imenima datoteka

if (dat.length > 0) {
System.out.println(" +"+f); //--------tu je pozivam
Nivo++;
for(int i=0; i<dat.length;i++){
Filename file = new Filename(f.toString()+'/'+dat[i], '/', '.');
Ispis Temp = new Ispis(file);
Temp.ispis(Nivo);
}
}else{
System.out.println(" -"+f); //-------------tu je pozivam

}

}
[/code:1]

System.out.println(nekaklasa) <=> System.out.println(nekaklasa.toString());

Mislim da sam nasao gresku. Pozivao sam od File klase metodu toString(), a trebao sam od klase Ispis.
Kod:

 if (!f.isDirectory())
            System.out.println("  "+f);//--------tu je pozivam
        if (f.isDirectory()) {
           
            String[] dat = f.list();
             //polje koje sadrzi listu s apstraktni imenima datoteka
 
            if (dat.length > 0) {
                System.out.println(" +"+f);  //--------tu je pozivam
                Nivo++;
                for(int i=0; i<dat.length;i++){
                Filename file = new Filename(f.toString()+'/'+dat[i],  '/', '.');
                Ispis Temp = new Ispis(file);
                Temp.ispis(Nivo);
                }
            }else{
                    System.out.println(" -"+f);  //-------------tu je pozivam
                   
                }
           
        }


System.out.println(nekaklasa) ⇔ System.out.println(nekaklasa.toString());

Mislim da sam nasao gresku. Pozivao sam od File klase metodu toString(), a trebao sam od klase Ispis.



_________________
------------------------------------------
Toni Grossi

Nekretnine Nekretnine 24 sata
++++++++++++++++++++++
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 18:03 pet, 19. 11. 2004    Naslov: Citirajte i odgovorite

[quote="grossi"]Pozivao sam od File klase metodu toString(), a trebao sam od klase Ispis.[/quote]

Zato sam i pitao. 8)

HTH
grossi (napisa):
Pozivao sam od File klase metodu toString(), a trebao sam od klase Ispis.


Zato sam i pitao. Cool

HTH



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Računarski praktikum 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan