User Tools

Site Tools


Problem constructing authldap
laboratoare:tutorial-io
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
laboratoare:tutorial-io [2017/09/27 00:20]
Mihai Burduselu [Alte modalități de a manipula fluxurile intrare-ieșire]
laboratoare:tutorial-io [2017/09/28 19:37]
Adriana Draghici [Abstractizare pentru manipularea ambelor fluxuri de date]
Line 9: Line 9:
  
 ==Introducere== ==Introducere==
-Acest API se folosește de FileReader pentru a crea un flux de intrare de caractere. +Acest API se folosește de [[http://​docs.oracle.com/​javase/​8/​docs/​api/?​java/​io/​FileReader.html|java.io.FileReader]] pentru a crea un flux de intrare de caractere. 
-BufferedReader este responsabil cu preluarea datelor de la un flux primitiv (FileReader) și procesarea acestora pentru a le oferi într-o altă formă. ​Astfel, design patternul decorator ​este aplicat aici, intrucat BufferedReader este un wrapper peste FileReader.+ 
 +[[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​io/​BufferedReader.html|BufferedReader]] este responsabil cu preluarea datelor de la un flux primitiv (''​FileReader''​) și procesarea acestora pentru a le oferi într-o altă formă. ​Patternul //​Decorator// ​este aplicat aici, intrucat ​''​BufferedReader'' ​este un wrapper peste ''​FileReader''​. 
 +De asemenea, [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​io/​FileWriter.html|java.io.FileWriter]] este responsabil pentru crearea unui flux de ieșire de caractere, în vreme ce [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​io/​BufferedWriter.html|BufferedWriter]] este un wrapper peste acesta. 
 + 
 +''​BufferedReader''​ are calitatea de a "​buffera"​ fluxul de date. Astfel, această metodă de citire este mai eficientă decât folosirea directă a unui ''​FileReader''​.
  
 ==Importarea API-ului== ==Importarea API-ului==
Line 19: Line 23:
 <​note>​ <​note>​
 Deschiderea fișierului se face în momentul instanțierii obiectului. Deschiderea fișierului se face în momentul instanțierii obiectului.
-Dacă fișierul nu se afla pe disc, API-ul va arunca FileNotFoundException.+Dacă fișierul nu se află pe disc, API-ul va arunca FileNotFoundException.
 </​note>​ </​note>​
 ===Instanțierea unui obiect al clasei FileReader=== ===Instanțierea unui obiect al clasei FileReader===
Line 26: Line 30:
 FileReader fileReader = new FileReader(filename);​ FileReader fileReader = new FileReader(filename);​
 </​code>​ </​code>​
-===Citirea tipurilor de date primitive din java=== +===Citirea tipurilor de date primitive din Java=== 
-FileReader conține metode de citire a tipurilor de date primitive din java: nextChar, nextBool, ​ nextInt, nextLong, nextFloat ​si nextDouble.+FileReader conține metode de citire a tipurilor de date primitive din Java''​nextChar''​''​nextBool''​,  ​''​nextInt''​''​nextLong''​''​nextFloat''​ și ''​nextDouble''​.
 Exemplu de folosire a metodelor **next*** Exemplu de folosire a metodelor **next***
 <code text input.txt>​ <code text input.txt>​
Line 46: Line 50:
 În urma rulării codului de mai sus, se va afișa "//4 3.14 true//"​. În urma rulării codului de mai sus, se va afișa "//4 3.14 true//"​.
  
-===Citirea stringurilor delimitate de spatii=== +===Citirea stringurilor delimitate de spații=== 
-De asemenea, API-ul oferă și metodă de nextWord care are drept scop citirea unui string pană la întâlnirea primului spațiu.+De asemenea, API-ul oferă și metoda ''​nextWord'' ​care are drept scop citirea unui string pană la întâlnirea primului spațiu.
 Exemplu de folosire a metodei **nextWord** Exemplu de folosire a metodei **nextWord**
 <code text input.txt>​ <code text input.txt>​
Line 68: Line 72:
  
 ===Închiderea fișierului=== ===Închiderea fișierului===
-După terminarea operației de citire din fișier, fișierul de citire trebuie închis folosind metoda ​**close()**.+După terminarea operației de citire din fișier, fișierul de citire trebuie închis folosind metoda ​''​close()''​.
  
 ==Scrierea în fișier== ==Scrierea în fișier==
Line 85: Line 89:
 ===Scrierea principalelor tipuri de date din java=== ===Scrierea principalelor tipuri de date din java===
 FileWriter conține metode de **write***, complementare cu metodele **next*** din FileReader. FileWriter conține metode de **write***, complementare cu metodele **next*** din FileReader.
-Metoda ​**writeNewLine()** trece pe o linie noua în fișier.+Metoda ​''​writeNewLine()'' ​trece pe o linie nouă în fișier.
  
 Exemplu de folosire a metodelor **write*** Exemplu de folosire a metodelor **write***
Line 109: Line 113:
  
 ===Închiderea fișierului=== ===Închiderea fișierului===
-După terminarea operației de scriere în fișier, fișierul de scriere trebuie închis folosind metoda ​**close()**.+După terminarea operației de scriere în fișier, fișierul de scriere trebuie închis folosind metoda ​''​close()''​.
  
 ==Abstractizare pentru manipularea ambelor fluxuri de date== ==Abstractizare pentru manipularea ambelor fluxuri de date==
-În cazul în care programul are nevoie atât de citire dintr-un fișier denumit input, cât și de scriere într-altul denumit output, API-ul oferă o abstractizare numită FileSystem. +În cazul în care programul are nevoie atât de citire dintr-un fișier denumit input, cât și de scriere într-altul denumit output, API-ul oferă o abstractizare numită ​''​FileSystem''​
-Cele 2 fișiere (input și output) sunt pasate ​drept parametri către constructor.+Cele 2 fișiere (input și output) sunt date drept parametri către constructor.
  
 ===Instanțierea unui obiect al clasei FileSystem=== ===Instanțierea unui obiect al clasei FileSystem===
Line 138: Line 142:
  
 ==Resurse== ==Resurse==
 +  * [[https://​docs.oracle.com/​javase/​tutorial/​essential/​io/​|Basic I/O]]
   * {{laboratoare:​tutorial-io:​fileio.zip|FileIO}}   * {{laboratoare:​tutorial-io:​fileio.zip|FileIO}}
   * {{laboratoare:​tutorial-io:​fileio_jar.zip|FileIO JAR}}   * {{laboratoare:​tutorial-io:​fileio_jar.zip|FileIO JAR}}
laboratoare/tutorial-io.txt · Last modified: 2017/10/01 22:07 by Adriana Draghici