Diferència entre revisions de la pàgina «M3 - Programació estructurada / Continguts UF3: Clase File»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 1: Línia 1:
3
+
==Introducció==
1. Introducció
+
 
Entre les funcions d’un sistema operatiu hi ha la d’oferir mecanismes genèrics per gestionar  
+
Entre les funcions d’un sistema operatiu hi ha la d’oferir mecanismes genèrics per gestionar sistemes de fitxers. En la immensa majoria dels casos es gestionen mitjançant una estructura jeràrquica amb carpetes i fitxers.
sistemes de fitxers. Normalment,  dins  un  sistema  operatiu  modern  (
+
 
o ja no tant modern), s’espera
+
Molts llenguatges de programació proporcionen biblioteques que permeten accedir directament als mecanismes interns que ofereix el sistema, de manera que és possible crear codi font des del qual, amb les instruccions adients, es poden realitzar operacions típiques d’un explorador de fitxers. De fet, les interfícies ofertes, com un explorador de fitxers, són un programa com qualsevol altre, el qual, usant  
disposar d’algun tipus d’interfície o explorador per poder gestionar fitxers, ja sigui gràficament o
+
precisament aquestes llibreries, permet que l’usuari gestioni fitxers fàcilment. Però no és estrany trobar altres aplicacions amb la seva pròpia interfície per gestionar fitxers, encara que només sigui per poder seleccionar quin cal carregar o desar en un moment donat:  editors  de  text,  compressors, reproductors de música, etc.
usant una línia d’ordres de text. Si bé la manera com les dades es desen realment en els dispositius
+
 
físics d’emmagatzematge
+
Java no és cap excepció oferint aquest tipus de biblioteca, en forma del conjunt de classes incloses dins del package java.io. Mitjançant la invocació dels mètodes adients definits d’aquestes classes, és possible dur a terme pràcticament qualsevol tasca sobre el sistema de fitxers.
de dades pot ser molt diferent segons cada tipus (magnètic, òptic, etc.), la
+
 
manera de gestionar el sistema de fitxers sol ser molt similar en la immensa majoria dels casos: una  
+
 
estructura jeràrquica amb carpetes i fitxers. Ara bé, en realitat, la capacit
+
==La classe File==
at d’operar amb el sistema
+
 
de  fitxers  no  és  exclusiva  de  la  interfície  oferta  pel  sistema  operatiu.  Molts llenguatges de  
+
La peça més bàsica per poder operar amb fitxers, independentment del seu tipus, en un programa fet en Java és el tipus compost File.  Aquesta classe pertany al package java.io. Per tant, l’haureu d’importar abans de poder usar-la. Aquesta us permet manipular qualsevol aspecte vinculat al sistema de fitxers. Ara bé, cal anar amb compte, ja que el seu nom (“fitxer”, en anglès) és una mica enganyós, ja que no es refereix exactament a un fitxer.  
programació proporcionen biblioteques que permeten accedir directament als mecanismes interns  
+
 
que ofereix el sistema, de manera que és  
+
La classe File indica, més concretament, una ruta dins el sistema de fitxers. Concretament, serveix per fer operacions tant sobre rutes al sistema de fitxers que ja existeixin com no existents. A més a més, aquesta classe es pot usar tant per manipular fitxers de dades com directoris.
possible crear codi font des del qual, amb les instruccions  
+
 
adients, es poden realitzar operacions típiques d’un explorador de fitxers. De fet, les interfícies  
+
===Inicialització===
ofertes, com un explorador de fitxers, són un programa com qualsevol altre, el qual, usant  
+
 
preci
+
Com qualsevol altra classe, abans de poder treballar amb File, a part d’importar-la correctament, cal inicialitzar-la, de manera que sigui possible invocar els seus mètodes. En aquest cas, per fer-ho cal incloure com a paràmetre una cadena de text corresponent a la ruta sobre  la qual es volen dur a terme les operacions.  
sament aquestes llibreries, permet que l’usuari gestioni fitxers fàcilment. Però no és estrany  
+
<pre>
trobar altres aplicacions amb la seva pròpia interfície per gestionar fitxers, encara que només sigui  
 
per poder seleccionar quin cal carregar o desar en un momen
 
donat:  editors  de  text,  compressors,  
 
reproductors de música, etc.
 
Java no és cap excepció oferint aquest tipus de biblioteca, en forma del conjunt de classes incloses  
 
dins del package java.io. Mitjançant la invocació dels mètodes adients definits d’aques
 
tes classes, és  
 
possible dur a terme pràcticament qualsevol tasca sobre el sistema de fitxers.
 
4
 
2
 
. La classe File
 
La peça més bàsica per poder operar amb fitxers, independentment del seu tipus, en un programa fet  
 
en Java és el tipus compost File.  Aquesta  
 
classe pertany al package java.io. Per tant, l’haureu  
 
d’importar abans de poder usar
 
-
 
la. Aquesta us permet manipular qualsevol aspecte vinculat al  
 
sistema de fitxers. Ara bé, cal anar amb compte, ja que el seu nom (“fitxer”, en anglès) és una mica  
 
enganyós
 
, ja que no es refereix exactament a un fitxer.  
 
 
La classe File indica, més concretament, una ruta dins el sistema de fitxers.
 
Concretament, serveix per fer operacions tant sobre rutes al sistema de fitxers que ja existeixin com  
 
no existents. A més a més,  
 
aquesta classe es pot usar tant per manipular fitxers de dades com  
 
directoris
 
2
 
.1 Inicialització
 
Com qualsevol altra classe, abans de poder treballar amb File, a part d’importar
 
-
 
la correctament, cal  
 
inicialitzar
 
-
 
la, de manera que sigui possible invocar el
 
s seus mètodes. En aquest cas, per fer
 
-
 
ho cal  
 
incloure com a paràmetre una cadena de text corresponent a la ruta sobre  la qual es volen dur a  
 
terme les operacions.  
 
 
File f = new File (String ruta)
 
File f = new File (String ruta)
File file = new File("c:
+
 
\
+
File file = new File("c:\\data\\input-file.txt");
\
+
</pre>
data
+
 
\
+
Una  ruta és la forma general d’un nom de fitxer o carpeta, de manera que identifica únicament la seva localització en el sistema de fitxers. Cadascun dels elements de la ruta poden existir realment o no, però això no impedeix de cap manera poder inicialitzar File. En realitat, el seu comportament és com una declaració d’intencions sobre quina ruta del sistema de fitxers es vol interactuar. No és fins  
\
+
que es criden els diferents mètodes definits a File, o fins que s’hi escriuen o s’hi llegeixen dades, que realment s’accedeix al sistema de fitxers i es processa la informació.
input
+
 
-
+
Un aspecte important que cal tenir present en inicialitzar File és tenir sempre present que el format de la  cadena de text que conforma la ruta pot ser diferent segons el sistema operatiu sobre el qual s’executa l’aplicació. Per exemple, el sistema operatiu Windows inicia les rutes per un nom d’unitat (C:,  D:,  etc.), mentre que els sistemes operatius basats en Unix comencen directament amb una barra (”/”). A més a més, els diferents sistemes operatius usen diferents separadors dins les rutes.  
file.txt");
+
 
Una  rut
+
Per exemple, els sistemes Unix usen la barra (”/”) mentre que el Windows la contrabarra (“\”).
a és la forma general d’un nom de fitxer o carpeta, de manera que identifica únicament la  
+
 
seva localització en el sistema de fitxers. Cadascun dels elements de la ruta poden existir realment o  
+
Per generar aplicacions totalment portables en diferents sistemes, la classe File ofereix la possibilitat d’accedir a una constant declarada dins d’aquesta classe per especificar separadors de ruta  dins  una  cadena  de  text  de  manera  genèrica,  anomenada  
no, però això no impedeix de cap manera poder inicialitzar File
+
'''File.separator'''. Quan s’usa, el seu valor és el que correspon segons el sistema operatiu on s’executa el programa. L’accés a  aquesta  
. En realitat, el seu comportament és  
 
com una declaració d’intencions sobre quina ruta del sistema de fitxers es vol interactuar. No és fins  
 
que es criden els diferents mètodes definits a File, o fins que s’hi escriuen o s’hi llegeixen dades,  
 
que realment  
 
s’accedeix al sistema de fitxers i es processa la informació.
 
Un aspecte important que cal tenir present en inicialitzar File és tenir sempre present que el format  
 
de la  cadena de text que conforma la ruta pot ser diferent segons el sistema operatiu sobre  
 
el qual  
 
s’executa l’aplicació. Per exemple, el sistema operatiu
 
Windows inicia les rutes per un nom d’unitat  
 
(C:,  D:,  etc.), mentre que els sistemes operatius basats en Unix comencen directament amb una  
 
barra (”/”). A més a més, els diferents sistemes oper
 
atius  usen diferents separadors dins les rutes.  
 
Per exemple, els sistemes Unix usen la barra (”/”) mentre que el Windows la contrabarra (“
 
\
 
”).
 
5
 
Per   generar   aplicacions   totalment   portables   en   diferents   sistemes,   la   classe   File   ofereix   la  
 
possibilitat d’acced
 
ir a una constant declarada dins d’aquesta classe per especificar separadors de  
 
ruta  dins  una  cadena  de  text  de  manera  genèrica,  anomenada  
 
File.separator
 
. Quan s’usa, el seu  
 
valor és el que correspon segons el sistema operatiu on s’executa el programa. L’a
 
ccés a  aquesta  
 
 
constant es fa de manera molt semblant a com s’invoca un mètode estàtic.
 
constant es fa de manera molt semblant a com s’invoca un mètode estàtic.
 +
<pre>
 
File f = new File(File.separator + "usr" + File.separator + "bin");
 
File f = new File(File.separator + "usr" + File.separator + "bin");
De totes maneres, Java adopta per defecte el sistema Unix com a separador per defecte (usant la  
+
</pre>
bar
+
De totes maneres, Java adopta per defecte el sistema Unix com a separador per defecte (usant la barra, /), independentment del sistema operatiu. Per tant, en un sistema Windows és possible separar una ruta amb aquest caràcter i Java ho sabrà interpretar correctament. A partir d’ara, tots exemples es basaran en un sistema Windows (rutes iniciades amb un nom d’unitat„ C:, D:, etc.), però s’usarà  
ra, /), independentment del sistema operatiu. Per tant, en un sistema
+
la barra per referir-se a qualsevol ruta.  
Windows és possible separar  
+
 
una ruta amb aquest caràcter i Java ho sabrà interpretar correctament. A partir d’ara, tots exemples  
+
De fet, en fer un programa en Java en un sistema Windows cal ser especialment acurat amb aquest fet, ja que la contrabarra no és un caràcter permès dins una cadena de text, i serveix per declarar valors especials d’escapament (\n salt de línia, \t tabulador, etc.).
es basaran en un sistema Windows (rutes iniciades amb un  
+
 
nom d’unitat„ C:, D:, etc.), però s’usarà  
+
Un altre aspecte molt important en inicialitzar File és que es tracta d’una classe que defineix un tipus compost (com String), i no un simple repositori de mètodes (com Scanner o Random). En conseqüència, cada cop que s’inicialitza, a l’identificador emprat s’hi assigna un valor associat a aquella ruta. A partir de llavors, l’identificador actua com una variable dins el programa. Per operar amb diferents rutes alhora caldrà inicialitzar i manipular diferents variables, igual que es faria amb diferents cadenes de text.
la barra per referir
 
-
 
se a qualsevol ruta.  
 
De fet, en fer un programa en Java en un sistema Windows cal ser especialment acurat amb aquest  
 
fet, ja que la contrabarra no és un caràcter permès dins una cadena de text
 
, i serveix per declarar  
 
valors especials d’escapament (
 
\
 
n salt de línia,  
 
\
 
t tabulador, etc.).
 
Un altre aspecte molt important en inicialitzar File és que es tracta d’una classe que defineix un  
 
tipus compost (com String), i no un simple repositori de mètod
 
es  (com Scanner o Random). En  
 
conseqüència, cada cop que s’inicialitza, a l’identificador emprat s’hi assigna un valor associat a  
 
aquella ruta. A partir de llavors, l’identificador actua com una variable dins el programa. Per operar  
 
amb diferents rutes alh
 
ora caldrà inicialitzar i manipular diferents variables, igual que es faria amb  
 
diferents cadenes de text.
 

Revisió del 13:36, 7 feb 2018

Introducció

Entre les funcions d’un sistema operatiu hi ha la d’oferir mecanismes genèrics per gestionar sistemes de fitxers. En la immensa majoria dels casos es gestionen mitjançant una estructura jeràrquica amb carpetes i fitxers.

Molts llenguatges de programació proporcionen biblioteques que permeten accedir directament als mecanismes interns que ofereix el sistema, de manera que és possible crear codi font des del qual, amb les instruccions adients, es poden realitzar operacions típiques d’un explorador de fitxers. De fet, les interfícies ofertes, com un explorador de fitxers, són un programa com qualsevol altre, el qual, usant precisament aquestes llibreries, permet que l’usuari gestioni fitxers fàcilment. Però no és estrany trobar altres aplicacions amb la seva pròpia interfície per gestionar fitxers, encara que només sigui per poder seleccionar quin cal carregar o desar en un moment donat: editors de text, compressors, reproductors de música, etc.

Java no és cap excepció oferint aquest tipus de biblioteca, en forma del conjunt de classes incloses dins del package java.io. Mitjançant la invocació dels mètodes adients definits d’aquestes classes, és possible dur a terme pràcticament qualsevol tasca sobre el sistema de fitxers.


La classe File

La peça més bàsica per poder operar amb fitxers, independentment del seu tipus, en un programa fet en Java és el tipus compost File. Aquesta classe pertany al package java.io. Per tant, l’haureu d’importar abans de poder usar-la. Aquesta us permet manipular qualsevol aspecte vinculat al sistema de fitxers. Ara bé, cal anar amb compte, ja que el seu nom (“fitxer”, en anglès) és una mica enganyós, ja que no es refereix exactament a un fitxer.

La classe File indica, més concretament, una ruta dins el sistema de fitxers. Concretament, serveix per fer operacions tant sobre rutes al sistema de fitxers que ja existeixin com no existents. A més a més, aquesta classe es pot usar tant per manipular fitxers de dades com directoris.

Inicialització

Com qualsevol altra classe, abans de poder treballar amb File, a part d’importar-la correctament, cal inicialitzar-la, de manera que sigui possible invocar els seus mètodes. En aquest cas, per fer-ho cal incloure com a paràmetre una cadena de text corresponent a la ruta sobre la qual es volen dur a terme les operacions.

File f = new File (String ruta)

File file = new File("c:\\data\\input-file.txt");

Una ruta és la forma general d’un nom de fitxer o carpeta, de manera que identifica únicament la seva localització en el sistema de fitxers. Cadascun dels elements de la ruta poden existir realment o no, però això no impedeix de cap manera poder inicialitzar File. En realitat, el seu comportament és com una declaració d’intencions sobre quina ruta del sistema de fitxers es vol interactuar. No és fins que es criden els diferents mètodes definits a File, o fins que s’hi escriuen o s’hi llegeixen dades, que realment s’accedeix al sistema de fitxers i es processa la informació.

Un aspecte important que cal tenir present en inicialitzar File és tenir sempre present que el format de la cadena de text que conforma la ruta pot ser diferent segons el sistema operatiu sobre el qual s’executa l’aplicació. Per exemple, el sistema operatiu Windows inicia les rutes per un nom d’unitat (C:, D:, etc.), mentre que els sistemes operatius basats en Unix comencen directament amb una barra (”/”). A més a més, els diferents sistemes operatius usen diferents separadors dins les rutes.

Per exemple, els sistemes Unix usen la barra (”/”) mentre que el Windows la contrabarra (“\”).

Per generar aplicacions totalment portables en diferents sistemes, la classe File ofereix la possibilitat d’accedir a una constant declarada dins d’aquesta classe per especificar separadors de ruta dins una cadena de text de manera genèrica, anomenada File.separator. Quan s’usa, el seu valor és el que correspon segons el sistema operatiu on s’executa el programa. L’accés a aquesta constant es fa de manera molt semblant a com s’invoca un mètode estàtic.

File f = new File(File.separator + "usr" + File.separator + "bin");

De totes maneres, Java adopta per defecte el sistema Unix com a separador per defecte (usant la barra, /), independentment del sistema operatiu. Per tant, en un sistema Windows és possible separar una ruta amb aquest caràcter i Java ho sabrà interpretar correctament. A partir d’ara, tots exemples es basaran en un sistema Windows (rutes iniciades amb un nom d’unitat„ C:, D:, etc.), però s’usarà la barra per referir-se a qualsevol ruta.

De fet, en fer un programa en Java en un sistema Windows cal ser especialment acurat amb aquest fet, ja que la contrabarra no és un caràcter permès dins una cadena de text, i serveix per declarar valors especials d’escapament (\n salt de línia, \t tabulador, etc.).

Un altre aspecte molt important en inicialitzar File és que es tracta d’una classe que defineix un tipus compost (com String), i no un simple repositori de mètodes (com Scanner o Random). En conseqüència, cada cop que s’inicialitza, a l’identificador emprat s’hi assigna un valor associat a aquella ruta. A partir de llavors, l’identificador actua com una variable dins el programa. Per operar amb diferents rutes alhora caldrà inicialitzar i manipular diferents variables, igual que es faria amb diferents cadenes de text.