Tehnologii Web

Previzualizare curs:

Extras din curs:

Schema generală

Una dintre metodele prin care putem îmbogăţi funcţionalitatea unei clase C este cea de a declara în ea un câmp d de tipul altei clase D şi de a iniţializa acest câmp printr-un constructor:

class C {

D d;

C(D d) {this.d=d; }

. . .

}

În acest mod, în metodele clasei C putem invoca metode ale clasei D, prin intermediul obiectului d.

În cazul în care clasa D extinde clasa C, această tehnică poartă numele de suprapunerea de obiecte, care aplicată la fluxuri de intrare/ieşire se numeşte suprapunere de fluxuri. În această situaţie sintagma "suprapunerea obiectelor adaugă noi facilităţi (funcţionalităţi)", înseamnă adaptarea metodelor clasei suprapuse la contextul clasei care o suprapune.

Facilităţile de intrare/ieşire din Java au la bază noţiunea de flux. Un flux este o succesiune de elemente (octeţi sau caractere), citite şi scrise secvenţial.

Pentru un flux de intrare sursa datelor poate fi un fişier, dar şi un şir sau tablou de octeţi, respectiv caractere. Pentru un flux de ieşire, datele transmise sunt stocate într-un fişier sau într-un tablou de octeţi, respectiv caractere. Este posibilă (şi chiar recomandată) utilizarea zonelor tampon. De asemenea este posibil ca un flux de ieşire să "comunice" cu un flux de intrare, în sensul că datele scrise în fluxul de ieşire vor constitui sursa pentru fluxul de intrare.

Dacă la citire nu sunt încă date disponibile în flux şi nu s-a detectat sfârşitul fluxului, atunci firul de executare care realizează citirea va fi blocat până când vor exista date disponibile. Analog, în cazul a două fluxuri comunicante ce folosesc o zonă tampon, firul de executare care are sarcina să scrie va fi blocat în situaţia în care zona tampon este plină.

O primă clasificare a fluxurilor are în vedere elementele de bază care sunt transmise: caractere sau octeţi.

Toate clasele, interfeţele şi metodele din pachetul java.io au modificatorul public, iar în plus aproape toate metodele conţin clauza throws IOException.

Fluxuri ce lucrează la nivel de octet

O structură simplificată de clase

Clasele neabstracte, afară de FileInputStream şi de FileOutputStream, au un constructor cu un parametru de tipul InputStream, respectiv de tipul OutputStream.

Exemplul 1. Într-o primă etapă vom citi de la intrarea standard un număr natural n şi apoi n numere reale; vom crea în directorul curent un fişier cu numele out.dat în care vom scrie datele citite. Într-o a doua etapă vom citi din fişierul out.dat valoarea n şi cele n numere şi le vom tipări la ieşirea standard.

Prima etapă este realizată de următorul program:

import java.io.*;

class Unu {

public static void main(String[] sir) throws Exception {

int n;

DataOutputStream g = new DataOutputStream(

new FileOutputStream("out.dat") );

IO.write("n= "); n = (int) IO.read(); g.writeInt(n);

IO.writeln("Introduceti " + n + " numere reale");

for (int i=0 ; i<n ; i++) g.writeDouble( IO.read() );

g.close();

}

}

unde:

- prin new FileOutputStream("out.dat") este creat fişierul out.dat;

- obiectul g de tipul DataOutputStream foloseşte metodele writeInt şi writeDouble (anunţate în interfaţa DataOutput şi implementate în clasa DataOutputStream) pentru a scrie în fişierul out.dat;

- pentru închiderea fişierului este invocată metoda close a clasei FilterInputStream (moştenită din DataOutputStream).

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • 1_fluxuri.doc
  • 2_serializare.doc
  • 3_socket.doc
  • 4_rmi.doc
  • 5_jdbc.doc
  • 6_ServerWeb.doc
  • 7_Servlet.doc
  • 8_BazeDate.doc
  • 9_Multipart.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
6.3/10 (3 voturi)
Nr fișiere:
9 fisiere
Pagini (total):
91 pagini
Imagini extrase:
91 imagini
Nr cuvinte:
23 065 cuvinte
Nr caractere:
136 167 caractere
Marime:
390.40KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Grafică Computerizată
Predat:
la facultate
Materie:
Grafică Computerizată
Profesorului:
Apostol Ion
Sus!