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)