bloque4:ficheros
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bloque4:ficheros [04/03/2018 17:08] – [Leer con Scanner] Fernando Valdeón | bloque4:ficheros [05/03/2018 11:38] (actual) – borrado Fernando Valdeón | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Manejo de ficheros de texto ====== | ||
| - | ==== Paquete java.io ==== | ||
| - | Aparte de la entrada y salida estándar representadas por la clase '' | ||
| - | |||
| - | La mayoría de las clases para manejo de ficheros están en el paquete '' | ||
| - | ===== Clase File ===== | ||
| - | La clase [[https:// | ||
| - | |||
| - | **Un objeto File es solamente una asociación a un fichero en el sistema; No tiene por qué existir.** | ||
| - | |||
| - | ==== Uso de la clase File ==== | ||
| - | Para crear una instancia de File indicamos el nombre del fichero mediante un String: | ||
| - | '' | ||
| - | |||
| - | 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étodo^Descripción^ | ||
| - | |boolean createNewFile()|Crea el fichero asociado al objeto File. Para poder crearlo, no debe existir| | ||
| - | |boolean mkdir()|Crea el directorio asociado al objeto File| | ||
| - | |boolean delete()|Elimina el fichero o directorio. Si es un directorio debe estar vacío| | ||
| - | |boolean exists()|true si el fichero representado existe| | ||
| - | |String getName()| Devuelve el nombre del fichero o directorio| | ||
| - | |boolean isDirectory()|true si es un directorio| | ||
| - | |boolean isFile()|true si es un fichero| | ||
| - | |String getPath()|Devuelve la ruta con la que se creó el objeto| | ||
| - | |String getAbsolutePath()|Devuelve la ruta absoluta| | ||
| - | |File getParentFile()|Devuelve un objeto File asociado al directorio que contiene el objeto actual| | ||
| - | |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 renameTo(File dest)|Renombra el fichero| | ||
| - | |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| | ||
| - | |||
| - | <code java> | ||
| - | File fichero = new File(ruta); | ||
| - | if(fichero.exists()){ | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | } | ||
| - | File directorio = new File(“src\\directorio1”); | ||
| - | directorio.mkdir(); | ||
| - | |||
| - | </ | ||
| - | ===== Clase PrintWriter ===== | ||
| - | 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 '' | ||
| - | |||
| - | __Si el fichero no existe, se crea. Si ya existe, se sobrescribe__. | ||
| - | |||
| - | <code java> | ||
| - | // | ||
| - | File fichero = new File(" | ||
| - | PrintWriter escritor = new PrintWriter(fichero); | ||
| - | |||
| - | //o directamente | ||
| - | PrintWriter escritor = new PrintWriter(" | ||
| - | |||
| - | //escribir el contenido de un array de String en fichero | ||
| - | for(int i = 0; i < array.length; | ||
| - | | ||
| - | } | ||
| - | |||
| - | //cerramos el PrintWriter | ||
| - | escritor.close() | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | Hay que tener en cuenta que las clases de entrada/ | ||
| - | |||
| - | === Añadir texto a un fichero existente === | ||
| - | 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 '' | ||
| - | |||
| - | Para añadir texto a un fichero en lugar de sobrescribirlo, | ||
| - | |||
| - | <code java> | ||
| - | //Indicando true en el constructor de FileWriter, añadimos texto | ||
| - | File fichero = new File(" | ||
| - | FileWriter filewriter = new FileWriter(fichero, | ||
| - | PrintWriter escritor = new PrintWriter(filewriter); | ||
| - | |||
| - | //o sin el objeto File | ||
| - | FileWriter filewriter = new FileWriter(" | ||
| - | PrintWriter escritor = new PrintWriter(filewriter); | ||
| - | </ | ||
| - | ===== Leer con Scanner ===== | ||
| - | La clase Scanner permite leer desde distintos flujos de entrada. Habitualmente hemos usado el flujo estándar '' | ||
| - | |||
| - | En este caso __necesitamos siempre un objeto File__, pero es la forma más sencilla de leer un fichero de texto. | ||
| - | |||
| - | <code java> | ||
| - | File fichero = new File(" | ||
| - | Scanner lector = new Scanner(fichero); | ||
| - | |||
| - | String cadenaLeida = lector.nextLine(); | ||
| - | int enteroLeido = lector.nextInt(); | ||
| - | |||
| - | lector.close(); | ||
| - | </ | ||
| - | |||
| - | En algunos casos necesitamos leer desde un fichero sin saber cuantas lineas tiene: | ||
| - | |||
| - | <code java> | ||
| - | File fichero = new File(" | ||
| - | Scanner lector = new Scanner(fichero); | ||
| - | |||
| - | //leo una linea, mientras queden lineas en el flujo de entrada | ||
| - | while(lector.hasNextLine()){ | ||
| - | | ||
| - | } | ||
| - | lector.close() | ||
| - | </ | ||
| - | ===== Otras formas de escribir en fichero ===== | ||
| - | |||
| - | ===== Otras formas de leer desde fichero ===== | ||
bloque4/ficheros.1520183289.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)
