Herramientas de usuario

Herramientas del sitio


bloque3:ficheros

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque3:ficheros [18/01/2019 15:30] Fernando Valdeónbloque3:ficheros [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 5: Línea 5:
 La mayoría de las clases para manejo de ficheros están en el paquete ''java.io'', y por lo tanto deben ser importadas. La mayoría de las clases para manejo de ficheros están en el paquete ''java.io'', y por lo tanto deben ser importadas.
  
-**La mayoría de operaciones con ficheros lanzan excepciones que debemos controlar**.+**Algunos métodos de las clases que manejan ficheros lanzan excepciones que debemos controlar**.
 ===== Clase File ===== ===== Clase File =====
 La clase [[https://docs.oracle.com/javase/8/docs/api/java/io/File.html|File]] se usa para representar un fichero o directorio desde un programa en Java. Con esta clase no se puede leer ni escribir en él, pero ofrece una serie de métodos interesantes. La clase [[https://docs.oracle.com/javase/8/docs/api/java/io/File.html|File]] se usa para representar un fichero o directorio desde un programa en Java. Con esta clase no se puede leer ni escribir en él, pero ofrece una serie de métodos interesantes.
Línea 14: Línea 14:
 Para crear una instancia de File indicamos el nombre del fichero mediante un String: Para crear una instancia de File indicamos el nombre del fichero mediante un String:
 ''File fichero = new File("rutaFichero");'' ''File fichero = new File("rutaFichero");''
- 
-El nombre del fichero puede estar compuesta simplemente por su nombre (ruta relativa) o por una ruta absoluta. **Siempre que indiquemos solo un nombre, se parte del directorio base del proyecto**. 
  
 **Métodos:** **Métodos:**
Línea 26: Línea 24:
 |boolean isDirectory()|true si es un directorio| |boolean isDirectory()|true si es un directorio|
 |boolean isFile()|true si es un fichero| |boolean isFile()|true si es un fichero|
 +|boolean canWrite()|true si tengo permisos de escritura|
 +|boolean canRead()|true si tengo permisos de lectura|
 |String getPath()|Devuelve la ruta con la que se creó el objeto| |String getPath()|Devuelve la ruta con la que se creó el objeto|
 |String getAbsolutePath()|Devuelve la ruta absoluta| |String getAbsolutePath()|Devuelve la ruta absoluta|
Línea 31: Línea 31:
 |long length()|Devuelve el tamaño en bytes del fichero, ó 0 si no existe.| |long length()|Devuelve el tamaño en bytes del fichero, ó 0 si no existe.|
 |boolean mkdirs()|Crea todos los directorios especificados en la ruta del objeto File, aunque no existan| |boolean mkdirs()|Crea todos los directorios especificados en la ruta del objeto File, aunque no existan|
-|boolean renameTo(File dest)|Renombra el fichero|+|boolean renameTo(File dest)|Renombra el fichero, true si se ha podido|
 |String[] list()|Devuelve un array con los nombres de los archivos o directorios que contiene el directorio asociado al objeto File. null si no es un directorio| |String[] list()|Devuelve un array con los nombres de los archivos o directorios que contiene el directorio asociado al objeto File. null si no es un directorio|
  
Línea 49: Línea 49:
  
 </code> </code>
-===== Escribir texto: Clase PrintWriter =====+ 
 +==== Ruta de un fichero ==== 
 +El nombre del fichero puede estar compuesto simplemente por una ruta relativa o por una ruta absoluta. **Siempre que indiquemos solo un el nombre del fichero, se parte del directorio base del proyecto**. 
 + 
 +Para los siguientes ejemplos __tengo un proyecto en Eclipse llamado "EjemploFicheros":__ 
 +<code java> 
 +//La carpeta del proyecto es EjemploFichero; contiene los directorios src, bin, etc 
 +//Ruta relativa a la carpeta de mi proyecto: "EjemploFicheros/fichero.txt" 
 +File fichero1 = new File("fichero.txt"); 
 + 
 +//Ruta relativa a la carpeta de mi proyecto: "EjemploFicheros/src/prueba1/fichero.txt" 
 +File fichero1 = new File("src/prueba1/fichero.txt"); 
 + 
 +//Ruta absoluta dentro de mi sistema operativo: "C:/Program Files/fichero.txt" 
 +File fichero1 = new File("C:/Program Files/fichero.txt"); 
 + 
 +</code> 
 +===== Escribir texto con PrintWriter =====
 La clase PrintWriter es una de las más fáciles de usar a la hora de escribir texto en un fichero. La clase PrintWriter es una de las más fáciles de usar a la hora de escribir texto en un fichero.
 Usa los mismo métodos con los que escribimos por pantalla con ''System.out'': Usa los mismo métodos con los que escribimos por pantalla con ''System.out'':
Línea 78: Línea 95:
 === Añadir texto a un fichero existente === === Añadir texto a un fichero existente ===
 Siempre que escribamos en un fichero que ya existe, el fichero se sobrescribirá. Siempre que escribamos en un fichero que ya existe, el fichero se sobrescribirá.
-PrintWriter no tiene control sobre esto, pero si la clase de la que hereda ''FileWriter''. En este caso **debemos crear un PrintWriter a partir de un FileWriter**.+PrintWriter no tiene control sobre esto, pero si la clase de la que hereda''FileWriter''. En este caso **debemos crear un PrintWriter a partir de un FileWriter**.
  
 Para añadir texto a un fichero en lugar de sobrescribirlo, indicaremos un segundo parámetro al constructor de FileWriter: Para añadir texto a un fichero en lugar de sobrescribirlo, indicaremos un segundo parámetro al constructor de FileWriter:
Línea 125: Línea 142:
  
 El control de excepciones se puede hacer de muchas formas, pero hay algo que debemos intentar hacer siempre:  El control de excepciones se puede hacer de muchas formas, pero hay algo que debemos intentar hacer siempre: 
- 
 **asegurarnos de cerrar los recursos que puedan estar abiertos**. **asegurarnos de cerrar los recursos que puedan estar abiertos**.
  
-Para ello podemos usar la sentencia ''finally'' del bloque ''try-catch'':+Para ello podemos usar la sentencia opcional ''finally'' del bloque ''try-catch'':
  
 <code java> <code java>
Línea 190: Línea 206:
 </code> </code>
  
 +----
  
 +{{ vimeo>313988435?medium }}
  
 ---- ----
  
 (c) {{date> %Y}} Fernando Valdeón (c) {{date> %Y}} Fernando Valdeón
bloque3/ficheros.1547825457.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)