Informática, Programación
Java: traballar con ficheiros - escribir, ler, borrar
Java ten moitas ferramentas para traballar con arquivos, porque serven como unha tenda de datos en moitos programas. É especialmente necesario acceder a arquivos en Java para Android. Todas as clases para traballar con ficheiros están localizadas no paquete java.io, que tamén almacena clases para traballar con fluxos de entrada e saída. Estrictamente falando, en Java, o traballo con ficheiros ocorre principalmente a través de bytes e fluxos de caracteres de entrada-saída. Unha excepción neste caso é a clase Ficheiro. Comezaremos con el.
Ficheiro de clase Java: traballa con ficheiros
A clase de ficheiros interactúa directamente cos ficheiros e co sistema de ficheiros. Unha instancia desta clase úsase principalmente para acceder ás propiedades do ficheiro e mover as xerarquías dos subdirectorios. Non define como extraer e gardar datos nun ficheiro, pero con esta clase pode obter moita información sobre o propio ficheiro: data, hora, dereitos de acceso e ruta ao directorio. De feito, a clase File é unha interpretación de obxecto dun arquivo ou directorio en Java.
Para crear unha instancia da clase Ficheiro, use un dos seus constructores: Ficheiro (Camiño de cadea ao cartafol, nome do ficheiro de cadea).
Consideremos os principais métodos desta clase, que permiten obter información sobre un ficheiro ou directorio:
- GetName () - devolve o nome do ficheiro;
- Existe () - devolve un valor booleano verdadeiro se o ficheiro existe, ou falso;
- IsFile () - determina se o obxecto apunta a un ficheiro, devolto o valor booleano correspondente;
- IsDirectory () - devolve verdadeiro se isto é un cartafol;
- CanWrite () - devolve verdadeiro se o ficheiro pode escribirse;
- CanRead () - devolve verdadeiro se o ficheiro é lexíbel;
- SetReadOnly () - fai que o ficheiro sexa só de lectura;
- Lonxitude (): devolve o tamaño do ficheiro en bytes;
- RenameTo (Nome novo do ficheiro) - canle o ficheiro actual de acordo co argumento aprobado. Devolve verdadeiro se a operación é exitosa;
- Eliminar (): elimina o ficheiro ou cartafol (se está baleiro) apuntado polo obxecto de chamada;
- Lista () - recupera unha lista de nomes de obxectos almacenados neste directorio como unha matriz de cadeas (aplicable só aos directorios).
Así, usando a clase File, Java funciona con ficheiros e cartafoles.
Traballando con ficheiros usando as clases FileInputStream e FileOutputStream
Anteriormente mencionamos que en Java, o traballo con ficheiros realízase principalmente a través de fluxos de E / S. Os fluxos de byte para traballar con ficheiros están representados en forma de clases FileInputStream e FileOutputStream. Estas clases son os herdeiros das clases abstractas básicas InputStream e OutputStream respectivamente, polo que os métodos destas clases están dispoñibles para traballar con ficheiros.
Considero primeiro o FileInputStream. Os constructores desta clase amósanse na seguinte figura:
O primeiro constructor ten como argumento a ruta para o ficheiro de destino como unha cadea, eo segundo construtor como representación de obxecto. Aínda que o primeiro constructor se usa con máis frecuencia, no segundo caso é posible estudar as propiedades do ficheiro dispoñible nos métodos da clase de ficheiro. Cando se crea unha instancia da clase, FileInputStream abre unha transmisión de entrada para ler o ficheiro.
Os constructores da clase FileOutputStream móstranse a continuación:
A situación é semellante a FileInputStream, pero tamén pode ter un valor lóxico de "anexar", que na verdade indica que os datos escritos no ficheiro de destino engadiranse aos que xa están dispoñibles e, se é falso, o ficheiro será sobrescrito por completo; Non se gardarán os datos antigos.
Vexamos un exemplo utilizando estas clases:
A entrada Stream FileInputStream le os datos de file1.txt en byte usando o método read (). Cada byte lido almacénase nunha variable en forma enteira. No corpo do ciclo while, esta variable pasa como argumento ao método de escritura da instancia de FileOutputStream, que escribe o byte recibido ao ficheiro2.txt. Ao final, os dous temas fican pechados co método máis próximo.
Clases FileReader e FileWriter
Se sabe que cando se trata de ficheiros tratará de texto, entón en vez de fluxos de bytes, ten sentido usar as simbólicas. Estes fluxos están representados polas clases FileReader e FileWriter en Java. Traballar con ficheiros que utilizan estas clases ocorre de forma moi parecida ao do caso anterior. Son descendentes das clases de Reader e Writer respectivamente, que definen os métodos básicos de entrada e saída de datos.
Os constructores para as clases FileReader e FileWriter móstranse na seguinte figura:
Concordo, practicamente non hai diferenzas en semántica en comparación cos fluxos de bytes. A conclusión é que estas clases están deseñadas especificamente para traballar con caracteres Unicode, que os fluxos de bytes non poden facer. Así funciona Java cos ficheiros. Un exemplo de uso destas clases móstrase a continuación:
Como podes ver, non hai diferenzas. É interesante notar que, aínda que as transmisións son simbólicas, o método de lectura retorna, eo método de escritura toma un valor enteiro. Aínda que a sinatura do método de escritura supón que se recibe un argumento int, só se escriben os 16 bits inferiores na transmisión, xa que os caracteres de Java están representados exactamente por ese número de bits.
Conclusión
Desmontáronse as clases principais para traballar con ficheiros en Java. É interesante notar que se vai desenvolver software para Java para Android, pode usar con seguridade esta ferramenta.
Similar articles
Trending Now