0% found this document useful (0 votes)
34 views6 pages

Poo Laboratoare: Laborator5 1 Citire Si Scriere de Fi Siere In Java

This document describes problems related to file input/output in Java. It covers basic concepts like primitive streams, buffered streams, and examples of reading and writing files. It then lists 11 problems to solve involving tasks like reading lines from files, counting words and lines, converting case of letters, writing integers to files in both text and binary formats, searching files for strings, and comparing performance of different I/O classes.

Uploaded by

cristian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views6 pages

Poo Laboratoare: Laborator5 1 Citire Si Scriere de Fi Siere In Java

This document describes problems related to file input/output in Java. It covers basic concepts like primitive streams, buffered streams, and examples of reading and writing files. It then lists 11 problems to solve involving tasks like reading lines from files, counting words and lines, converting case of letters, writing integers to files in both text and binary formats, searching files for strings, and comparing performance of different I/O classes.

Uploaded by

cristian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 6

Poo Laboratoare

Contents
Laborator5
Citire si scriere de fisiere
1 n Java
1.1

1.2

Notiuni de baz . . . . . . . .
1.1.1 Fluxuri primitive . . . .
Fluxuri de procesare
1.1.2 . .
Exemplu . . . . . . . . . . . .

2
2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 Probleme de laborator
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

Problema
Problema
Problema
Problema
Problema
Problema
Problema
Problema
Problema

1
2
3
4
5
6
7
8
9

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

3
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.3
.3
.4
.4
.4
.4
.4
.4
.4

2.10 Problema 10 (bonus) . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2.11 Problema 11 (bonus) . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

http://www.google.ro/

Laborator5
Programare Orientata pe Obiecte: Laborator 5

Citire si scriere de fisiere n Java

11
1.1

Notiuni de baz
`

Pachetul care ofera suport pentru operaEiile de intrare/ieEire este: java.io

Atentie! Pentru o descriere completa a claselor puse

`
la dispoziEie de acest pachet

`
folosiEi

documentatia JDK

1.1.1 Fluxuri primitive


`

Se ocupa cu citirea/scrierea efectiva a informaEiilor ntr-un stream

Exemple de clase:

1. FileReader, FileWriter
2. FileInputStream, FileOutputStream
Crearea unui flux de intrare pe caractere :
FileReader in = new FileReader( fisier.txt );

1.1.2 Fluxuri de procesare

`
Sunt responsabile cu preluarea datelor de la un flux primitiv Ei procesarea acestora pentru a le

oferi ntr-o alt forma

Exemple de clase:

1. BueredReader, BueredWriter
2. BueredInputStream, BueredOutputStream
Crearea unui flux de intrare printr-un buer :
BufferedReader = new BufferedReader( new FileReader( fisier.txt ) );

1.2

Exemplu

import java.io.*; class


CitireScriere
{
String buf = ;
public void citeste(String fisier)
{
int c;
FileReader f = null; try {
f = new FileReader(fisier); while ((c
= f.read()) != -1) {
buf = buf + (char)c;

}
f.close();

}
catch (FileNotFoundException e)
{ System.out.println(Fisierul nu a fost gasit);
}
catch (IOException e) { System.out.println(Eroare
la citire);
}
}
public void scrie(String fisier)
{
FileWriter f = null; try {
f = new FileWriter(fisier);
f.write(buf);
f.close();
}
catch (IOException e) { System.out.println(Eroare la
scriere);
}
}
public static void main(String argv[])
{
CitireScriere c = new CitireScriere();
c.citeste(text.txt); c.scrie(out.txt);}
}
}

Probleme de laborator

12
2.1

Problema 1

(1 punct) Sa se scrie un program pentru afisarea pe ecran a liniilor dintr-un fisier text,
fiecare linie precedat de numarul liniei si de un spatiu. Se va folosi clasa
LineNumberReader. Numele fisierului se da n linia de comand. Toate exceptiile de I/E sunt
aruncate mai departe astfel:

public static void main (String argv[]) throws IOException { ... }

2.2

Problema 2

(1 punct) Sa se scrie un program pentru afisarea numarului de linii si numarului de cuvinte


dintr-un fisier text. Cuvintele sunt separate prin spatii albe. Exemplu de utilizare a clasei
StringTokenizer (pachetul java.util) pentru extragere de cuvinte separate prin delimitatori din sirul
delim, dintr-un sir sir :

StringTokenizer st = new StringTokenizer(sir, delim); while


(st.hasMoreTokens()) {
String token = st.nextToken();

... // token contine un cuvant


}

2.3

Problema 3

(1 punct) Sa se scrie un program pentru citirea unui fisier text si crearea unui alt
fisier n care toate literele din fisierul initial sunt trecute n litere mari. Se va folosi
metoda read din clasa FileReader pentru citirea unui caracter (metoda read are ca
rezultat -1 la sfarsit de fisier).

Se poate folosi metoda statica: char Character.toUpperCase(char c)

2.4

Problema 4

(1 punct) Sa se utilizeze clasa PrintStream pentru a scrie numere ntregi ntr-un


fisier text pe disc. Sa se modifice apoi programul nlocuind clasa PrintStream cu
clasa PrintWriter (cu aceleasi metode print si println). Fisierul va fi verificat cu un
editor de texte.
Sa se scrie un program pentru citirea si afisarea fisierului de numere creat (cu
RandomAccessFile).
Exemple de creare obiecte:
PrintStream ps = new PrintStream( new FileOutputStream(filename));
PrintWriter pw = new PrintWriter( new FileWriter(filename));

2.5

Problema 5

(1 punct) Sa se rescrie programul anterior astfel ca numerele sa fie scrise in


format binar folosind clasa DataOutputStream (metoda writeInt). Program pentru
citirea si afisarea pe ecran a fisierului de numere creat folosind metoda readInt
din clasa DataInputStream.

2.6

Problema 6

(1 punct) Sa se scrie un program pentru citirea de linii de la tastatura si afisarea lor pe ecran, folosind metoda
readLine pentru un obiect de tip DataInputStream sau BueredReader.

2.7

Problema 7

(1 punct) Sa se rescrie programul anterior utilizand clasa Scanner.

2.8

Problema 8

(1 punct) Sa se scrie un program pentru citirea integral a unui fisier text n


memorie, urmat de afisarea sa pe ecran prin doua metode:

1 Folosind metoda readFully din clasa RandomAccessFile


2

2.9

Folosind operatorul + pentru adaugarea unei linii la textul citit anterior.

Problema 9

(2 puncte) Program pentru cautarea unui sir dat n toate fisierele dintr-un director dat
si afisarea numelor fisierelor care contin acest sir.

2.10

Problema 10 (bonus)

(1 punct) Sa se scrie un program pentru copierea unui fisier mare folosind succesiv clasele FileIn-putStream,
FileOutputStream, apoi clasele FileReader, FileWriter si apoi clasele BueredReader si

BueredWriter. Comparati timpul de copiere pentru cele trei cazuri.

2.11

Problema 11 (bonus)

(1 punct) Sa se scrie un program pentru afisarea numerelor, cuvintelor si


caracterelor speciale (operatori, delimitatori) dintr-un program sursa Java, folosind
un obiect de tip java.io.StreamTokenizer. Numele fisierului se da n linia de
comand sau se citeste de la tastatur.

You might also like