Advertisement
desdemona

instrukcja

Feb 26th, 2013
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.14 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package laborka1;
  6.  
  7. /**
  8.  *
  9.  * @author student
  10.  */
  11. import java.io.File;
  12. import java.io.Serializable;
  13. import java.io.FileInputStream;
  14. import java.io.FileOutputStream;
  15. import java.io.IOException;
  16. import java.io.ObjectInputStream;
  17. import java.io.ObjectOutputStream;
  18. import java.util.logging.Level;
  19. import java.util.logging.Logger;
  20.  
  21.  
  22. public class main {
  23.  
  24.     /**
  25.      * @param args the command line arguments
  26.      */
  27.     public static void main(String[] args) {
  28.         // TODO code application logic here
  29.         String sciezka = args[0];
  30.        
  31.        
  32.         //0. sciezka (plik lub katalog)
  33.         //1. plik
  34.         //drugi jest opcjonalny
  35.         //jezeli cos jest katalgiem to serializujemy do tego
  36.         //katalogu
  37.        
  38.         File obj = new File(sciezka);
  39.         if(obj.isDirectory())
  40.         {
  41.             if(args.length > 1)
  42.             {
  43.                 //serializacja
  44.             }
  45.            
  46.             //tak czy siak robimy lsa
  47.            
  48.         }
  49.         else
  50.         {
  51.             //deserializacja
  52.         }
  53.        
  54.        
  55.         // jezeli tylko plik to to jest plik z ktorego odczytujemy
  56.         // i deserializujemy
  57.        
  58.        
  59.         //najpierw pliki po nazwie
  60.         //potem katalogi
  61.         //wciecie tabulatorami
  62.        
  63.         //rozmiar plikow i katalogow
  64.        
  65.     }
  66. }
  67. /*
  68.  * To change this template, choose Tools | Templates
  69.  * and open the template in the editor.
  70.  */
  71. package laborka1;
  72.  
  73. /**
  74.  *
  75.  * @author student
  76.  */
  77.  
  78. import java.io.File;
  79. import java.io.Serializable;
  80. import java.text.DateFormat;
  81. import java.text.SimpleDateFormat;
  82. import java.util.Date;
  83. import java.util.Iterator;
  84. import java.util.Objects;
  85. import java.util.TreeSet;
  86.  
  87. public class MyFile   implements Comparable<MyFile>, Serializable{
  88.     private enum TYP { plik, folder };
  89.     TYP typ;
  90.     String nazwa;
  91.     long rozmiar;
  92.     File plik;
  93.     Date data;
  94.     TreeSet<MyFile> lista;
  95.    
  96.    
  97.    
  98.     public MyFile(String sciezka)
  99.     {
  100.         //co nie jest katalogiem jest plikiem
  101.         this.plik = new File(sciezka);
  102.         this.nazwa = this.plik.getName();
  103.        
  104.        
  105.        
  106.         if(this.plik.isDirectory())
  107.         {
  108.             this.typ = TYP.folder;
  109.         }
  110.         else
  111.         {
  112.             this.typ = TYP.plik;
  113.             this.rozmiar = this.plik.length();
  114.         }
  115.        
  116.         this.data= new Date(this.plik.lastModified());
  117.         this.lista = new TreeSet<>();
  118.        
  119.        
  120.        
  121.     }
  122.    
  123.     private void czytajFolder()
  124.     {
  125.         File pliki[] = this.plik.listFiles();
  126.         //zczytaj pliki do tabelki
  127.        
  128.         for (File x : pliki)
  129.         {
  130.             this.lista.add(new MyFile(x.getAbsolutePath()));
  131.         }
  132.  
  133.         this.rozmiar = this.lista.size();
  134.  
  135.         this.plik = null;
  136.     }
  137.    
  138.     public void print(int przerwa) // wyswietlenie zawartosci kolekcji
  139.     {
  140.         //przerwa to poziom zaglebienia w drzewie
  141.         Iterator it = lista.iterator();
  142.  
  143.         while(it.hasNext())
  144.         {
  145.             dodajTaba(przerwa);
  146.             MyFile file = (MyFile)it.next();
  147.             System.out.println(file.toString());
  148.  
  149.             if(file.typ == TYP.folder)
  150.                 file.print(przerwa+1);
  151.         }
  152.     }
  153.    
  154.     private void dodajTaba(int przerwa)
  155.     {
  156.         for(int i = 0;i < przerwa; i++)
  157.             System.out.print("/t");
  158.     }
  159. }
  160. /*
  161.  * To change this template, choose Tools | Templates
  162.  * and open the template in the editor.
  163.  */
  164. package laborka1;
  165.  
  166. /**
  167.  *
  168.  * @author student
  169.  */
  170. /*
  171.  * To change this template, choose Tools | Templates
  172.  * and open the template in the editor.
  173.  */
  174. package ls_in_java;
  175.  
  176. import java.io.File;
  177. import java.io.Serializable;
  178. import java.text.DateFormat;
  179. import java.text.SimpleDateFormat;
  180. import java.util.Date;
  181. import java.util.HashSet;
  182. import java.util.Iterator;
  183. import java.util.Objects;
  184. import java.util.Set;
  185. import java.util.TreeSet;
  186.  
  187. public class Plikofolder  implements Comparable<Plikofolder>, Serializable{
  188.    
  189.     private enum Pczyf { PLIK, FOLDER };
  190.     private String nazwa;
  191.     private Pczyf plikczyfolder;
  192.     private Date data;
  193.     private transient File plik;
  194.     private long rozmiar;
  195.     private Set<Plikofolder> lista;
  196.     //zawartosc folderu
  197.    
  198.    
  199.     public String getNazwa() {
  200.         return nazwa;
  201.     }
  202.  
  203.     public void setNazwa(String nazwa) {
  204.         this.nazwa = nazwa;
  205.     }
  206.  
  207.     public long getRozmiar() {
  208.         return rozmiar;
  209.     }
  210.    
  211.     Plikofolder(String sciezka, boolean sort)
  212.     {
  213.         this.plik=new File(sciezka);
  214.         this.nazwa = this.plik.getName();
  215.        
  216.         if(this.plik.isDirectory())
  217.         {
  218.             this.plikczyfolder = Pczyf.FOLDER;
  219.         }
  220.         else
  221.         {
  222.             this.plikczyfolder=Pczyf.PLIK;
  223.             this.rozmiar=this.plik.length();
  224.         }
  225.        
  226.         this.data= new Date(this.plik.lastModified());
  227.        
  228.         if(sort == true)
  229.         {
  230.             lista=new TreeSet<>();
  231.         }
  232.         else
  233.         {
  234.             lista = new HashSet<>();
  235.         }
  236.        
  237.         if (this.plikczyfolder.equals(Pczyf.FOLDER))
  238.         {
  239.             //ładuj co w tym folderze siedzi
  240.             czytajFolder(sort);
  241.         }
  242.     }
  243.    
  244.     private void czytajFolder(boolean sort)
  245.     {
  246.         File pliki[] = this.plik.listFiles();
  247.         //zczytaj pliki do tabelki
  248.        
  249.         for (File x : pliki)
  250.         {
  251.             this.lista.add(new Plikofolder(x.getAbsolutePath(), sort));
  252.         }
  253.         //po co ten sort tu jest?
  254.  
  255.         if(this.plik.isDirectory())
  256.         {
  257.             this.rozmiar = this.lista.size();
  258.         }
  259.  
  260.         this.plik = null;
  261.     }
  262.    
  263.    
  264.     @Override
  265.     public int compareTo(Plikofolder x)
  266.     {
  267.         if(this.equals(x))
  268.             return 0;
  269.        
  270.         if(this.rozmiar == x.rozmiar)
  271.             return this.nazwa.compareTo(x.nazwa);
  272.         else
  273.             return Long.valueOf(this.rozmiar).compareTo(x.rozmiar);
  274.         // takie same rozmiary, cisnij po nazwach.
  275.     }
  276.    
  277.    @Override
  278.     public boolean equals(Object x)
  279.     {
  280.         //czy to ten sam obiekt? a kto to wie?
  281.         //nie mozna wejsc dwa razy do tej samej rzeki i inne opowiesci filozoficzne..
  282.         if(x == null)
  283.             return false;
  284.        
  285.         if(this.getClass() != x.getClass())
  286.             return false;
  287.        
  288.          if(this == x)
  289.              return true;
  290.  
  291.  
  292.         // Plikofolder porownywany = (Plikofolder)x;
  293.         // jezeli sa tej samej klasy to rzutujemy na ObiektKP
  294.         //return (nazwa.equals(porownywany.nazwa) && rozmiar == porownywany.rozmiar);
  295.         //porownujemy nazwe i rozmiar
  296.         return false;
  297.     }
  298.  
  299.     @Override
  300.     // haszowanie, wygenerowane. i nie za bardzo rozumiem
  301.     // po co one tej javie jest ale wierze ze ma to sens
  302.     public int hashCode() {
  303.         int hash = 7;
  304.         hash = 43 * hash + Objects.hashCode(this.nazwa);
  305.         hash = 43 * hash + (int) (this.rozmiar ^ (this.rozmiar >>> 32));
  306.         return hash;
  307.     }
  308.    
  309.     @Override
  310.     public String toString()
  311.     {
  312.         String wynik = nazwa + " ";
  313.        
  314.         if (this.plikczyfolder == Pczyf.FOLDER)
  315.             wynik += "Folder";
  316.         else
  317.             wynik += "Plik";
  318.        
  319.         return (wynik + rozmiar + " " + formatujDate());
  320.         // rozmiar i data ostatniej modyfikacji
  321.     }
  322.    
  323.    
  324.     public void print(int przerwa) // wyswietlenie zawartosci kolekcji
  325.     {
  326.         //przerwa to poziom zaglebienia w drzewie
  327.         Iterator it = lista.iterator();
  328.  
  329.         if(lista.size() > 0)
  330.         {
  331.             dodajSpacje(przerwa);
  332.             System.out.println(">>>");
  333.         }
  334.  
  335.         while(it.hasNext())
  336.         {
  337.             dodajSpacje(przerwa);
  338.             Plikofolder file = (Plikofolder)it.next();
  339.             System.out.println(file.toString());
  340.  
  341.             if(file.plikczyfolder == Pczyf.FOLDER)
  342.                 file.print(przerwa+3);
  343.         }
  344.  
  345.         if(lista.size() > 0)
  346.         {
  347.             dodajSpacje(przerwa);
  348.             System.out.println("<<<");
  349.             //koniec folderu
  350.         }
  351.     }
  352.        
  353.             private void dodajSpacje(int przerwa)
  354.     {
  355.         for(int i = 0;i < przerwa; i++)
  356.             System.out.print(" ");
  357.     }
  358.  
  359.     private String formatujDate() // przeksztalcenie daty na odpowiedni format
  360.     {
  361.         DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  362.         return formatter.format(this.data);
  363.  
  364.     }
  365. }
  366. /*
  367.  * To change this template, choose Tools | Templates
  368.  * and open the template in the editor.
  369.  */
  370. package laborka1;
  371.  
  372. /**
  373.  *
  374.  * @author student
  375.  */
  376. public class sdffdf {
  377.    
  378. }
  379. /*
  380.  * To change this template, choose Tools | Templates
  381.  * and open the template in the editor.
  382.  */
  383. /**
  384.  *
  385.  * @author Dominika
  386.  */
  387. import java.io.FileInputStream;
  388. import java.io.FileOutputStream;
  389. import java.io.IOException;
  390. import java.io.ObjectInputStream;
  391. import java.io.ObjectOutputStream;
  392. import java.util.logging.Level;
  393. import java.util.logging.Logger;
  394.  
  395. public class Ls_in_java {
  396.  
  397.     /**
  398.      * @param args the command line arguments
  399.      */
  400.     public static void main(String[] args) {
  401.         // TODO code application logic here
  402.        
  403.         boolean sortuj = false;  
  404.         boolean czytaj = false;
  405.         boolean zapisz = false;
  406.         String nazwaPliku ="serializable.object";
  407.         //pierwszy argument to sortowanie. 1 dla tak, 0 dla nie.
  408.         //domyslnie 0
  409.        
  410.         if("1".equals(args[1]))
  411.         {
  412.             sortuj = true;
  413.         }
  414.        
  415.         if (args.length == 3)
  416.         {
  417.             if (args[2].equals("czytaj")) czytaj = true;
  418.             else if (args[2].equals("zapisz")) zapisz = true;
  419.         }
  420.        
  421.         //drugi to czytaj albo zapisz
  422.         //formalnie trzeci
  423.         //bo to sciezka jest pierwszym
  424.        
  425.        
  426.         if(zapisz == true) // serializacja
  427.         {
  428.             Plikofolder obiekt = new Plikofolder(args[0], sortuj); // czytanie zawartosci katalogu
  429.             obiekt.print(0); // wyswietlenie zawartosci katalogu
  430.  
  431.             ObjectOutputStream oos = null;
  432.             try
  433.             {
  434.                 oos = new ObjectOutputStream(new FileOutputStream(nazwaPliku));
  435.                 oos.writeObject(obiekt);
  436.             }
  437.             catch (IOException e)
  438.             {
  439.                 System.out.println(e.getMessage());
  440.             }
  441.             finally
  442.             {
  443.                 try
  444.                 {
  445.                     if (oos != null) oos.close();
  446.                 }
  447.                 catch (IOException e)
  448.                 {
  449.                     System.out.println(e.getMessage());
  450.                 }
  451.             }
  452.         }
  453.         else if(czytaj == true) // deserializacja
  454.         {
  455.             Plikofolder obiekt = null;
  456.             ObjectInputStream ois = null;
  457.  
  458.             try
  459.             {
  460.                 ois = new ObjectInputStream(new FileInputStream(nazwaPliku));
  461.                 try {
  462.                     obiekt = (Plikofolder)ois.readObject();
  463.                 } catch (ClassNotFoundException ex) {
  464.                     Logger.getLogger(Ls_in_java.class.getName()).log(Level.SEVERE, null, ex);
  465.                 }
  466.  
  467.             }
  468.             catch (IOException e)
  469.             {
  470.                 System.out.println(e.getMessage());
  471.             }
  472.             finally
  473.             {
  474.                 try
  475.                 {
  476.                     if (ois != null)
  477.                     {
  478.                         ois.close();
  479.                         obiekt.print(0); // wypisanie wczytanego zdeserializowanego obiektu
  480.                     }
  481.                 }
  482.                 catch (IOException e)
  483.                 {
  484.                     System.out.println(e.getMessage());
  485.                 }
  486.             }
  487.         }
  488.         else
  489.         {
  490.             Plikofolder obiekt = new Plikofolder(args[0], sortuj); // wczytanie zawartosci katalogu
  491.             obiekt.print(0); // wyswietlenie zawartosci
  492.         }
  493.     }
  494. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement