Ficheros de texto en JAVA - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Ficheros de texto en JAVA
Empezamos este último vídeo de esta colección de vídeos dedicados a programación
00:00:07
y en este caso nos vamos a centrar en los ficheros en Java.
00:00:15
Antes de empezar el vídeo tutorial quiero recordaros que en el aula virtual,
00:00:22
en la sección de los alumnos que tenéis este módulo pendiente,
00:00:28
tenéis arriba del todo un manual de ayuda del lenguaje Java
00:00:33
aquí os he colgado un pantallazo de donde está ubicado
00:00:40
en esta sección y este es el manual que deberíais descargar
00:00:45
para hacer el seguimiento desde que hemos empezado los vídeos
00:00:49
pero por si acaso lo recuerdo por alguna duda que me ha comentado algún compañero vuestro
00:00:53
En concreto os aconsejo que os leáis con detenimiento este tema número 11 de ese libro o de este manual que es el justo que tenéis en pantalla y sobre todo os aconsejo que os miréis los tres primeros epígrafes o apartados que son los que están ahí seleccionados.
00:00:59
Una vez dicho esto pues vamos a empezar el tema de ficheros de texto
00:01:23
Los ficheros de texto en cualquier lenguaje de programación son ficheros que no tienen ningún tipo de formato
00:01:29
Es decir, es lo que en informática se llama ficheros de formato plano
00:01:39
Significa que no tienen ningún tipo de cabecera
00:01:44
Solamente van a tener o van a contener caracteres alfanuméricos
00:01:49
Sobre este tipo de ficheros de texto se pueden aplicar dos operaciones fundamentales
00:01:55
Por una parte se pueden aplicar operaciones de escritura de datos, es decir, podemos enviar datos al fichero
00:02:03
O bien podemos hacer la operación contraria, es decir, leer datos desde el fichero
00:02:09
Si nos centramos en la escritura de datos, pues vamos a ver algunos de los métodos más importantes que tiene Java para poder hacer uso de este tipo de herramienta.
00:02:16
Como veis aquí aparece una instrucción en la que se declara un objeto de escritura de tipo buffer
00:02:36
y a este tipo de escritura de tipo buffer le tenemos que poner un nombre de fichero
00:02:46
de modo que cuando nosotros hagamos referencia a este file writer, a este nombre de fichero
00:02:56
se va a crear un nombre para que podamos escribir a través de este objeto de aquí, wbw.
00:03:06
Hay una instrucción que es exactamente igual que esta, pero con una pequeña diferencia.
00:03:16
Si veis es la misma instrucción, sin embargo, esta al final lleva aquí un true.
00:03:21
¿Qué diferencia hay entre las dos instrucciones?
00:03:26
Bueno, pues en la primera instrucción lo que hace es que va a abrir el fichero para escribir en él.
00:03:29
Las dos abren para escribir en el fichero, la única diferencia es que la primera va a sobreescribir el fichero, es decir, si teníamos algo ya lo va a sobreescribir, lo va a machacar y la segunda lo que va a hacer es añadir al final del fichero.
00:03:35
En algunas ocasiones nos interesará abrir el fichero para sobreescribirlo y en otras nos interesará ir añadiendo al final del fichero.
00:03:50
Además de esto tenemos una instrucción que nos va a permitir escribir en el fichero
00:04:01
Porque recordemos que estas dos anteriores lo único que hacen es preparar un buffer sobre un fichero para que podamos escribir en él
00:04:09
Pero después hay que hacer uso de este buffer y mediante la instrucción write se le escribe una línea
00:04:19
Fijaos que aquí hemos puesto un prefijo str a la línea
00:04:25
Ya que hemos querido denominar que es un string
00:04:30
Lo que se le pasa a esta línea
00:04:34
Es decir, dentro de este string podéis guardar el dato o los datos que queráis
00:04:35
Si son varios se pueden concatenar en la misma línea y mandarlas al fichero
00:04:41
Una cosa importante dentro de esta escritura en la línea
00:04:46
es que deberíais poner un fin de línea
00:04:52
porque si no, todas las líneas las va a escribir una a continuación de la otra
00:04:56
os aconsejo que miréis el código que os voy a juntar
00:05:00
del ejemplo de esta parte del temario
00:05:06
porque en esa parte de la escritura aparece una variable que se llama el fin de línea
00:05:10
por favor mirad bien como se captura el fin de línea
00:05:18
porque esta se captura realmente del sistema
00:05:22
en el código creo que está declarada como str
00:05:26
fin de línea y lo que se hace es que se concatena
00:05:31
a esta línea como final para que cuando se escriba
00:05:35
en el fichero se escriba una línea
00:05:39
y una vez que termine esa línea en la siguiente escriba la siguiente
00:05:42
en la siguiente la siguiente y así sucesivamente, es decir
00:05:46
Las líneas se van a ir escribiendo con un retorno de carro
00:05:50
Por último es indispensable y obligatorio cerrar el fichero
00:05:54
Para cerrar el fichero hay que hacer uso del buffer y usar la instrucción close
00:06:03
Esta no lleva parámetros y es obligatorio porque si lo dejamos abierto
00:06:08
Podemos tener problemas si el fichero está siendo llamado de forma repetida en un bucle
00:06:12
ya que intentaremos a lo mejor abrirlo y ya estará abierto, con lo cual eso nos puede dar problemas.
00:06:18
Las operaciones de lectura se comportan de una forma análoga, tenemos aquí un lector del fichero,
00:06:27
en donde irá el nombre del fichero, que por cierto es importante recordar que dentro de este nombre del fichero
00:06:38
va a la ruta vale va a la ruta del directorio o directorios donde esté así que por favor cuando
00:06:44
se utilice esta instrucción recordad que si no ponéis ruta se va a crear el fichero desde donde
00:06:51
se esté ejecutando la aplicación el buffer reader en este caso es un buffer que va a permitir la
00:07:00
lectura de este tipo de contenidos en este caso de una línea por cada pasada
00:07:07
de bucle para entender un poco qué es esto de la pasada de bucle pues he
00:07:14
puesto aquí un ejemplo de una lectura si os fijáis
00:07:20
cada línea que se recupera del fichero cada línea que se recupera del fichero
00:07:25
se recupera con la instrucción red light es importante por eso que hayáis puesto
00:07:30
el fin de línea en la escritura
00:07:37
para que cuando leáis una línea solo os lea esa línea
00:07:40
también si os fijáis
00:07:44
este bucle se va a ejecutar
00:07:46
mientras que no sea null
00:07:49
¿qué significa esto? pues que se va a ejecutar hasta que el fichero
00:07:51
ya no tenga datos para poder leer
00:07:55
es decir, ya no tenga más líneas de código
00:07:57
hay que fijarse también en que esta
00:08:00
línea se lee antes del
00:08:04
while y dentro del while, antes del while se lee porque si el fichero
00:08:07
está vacío ya no entrará aquí dentro, ya que la línea será nula
00:08:10
y dentro del while hay que leerla para que se vayan
00:08:14
procesando todas las líneas una a una, aquí con la línea
00:08:19
haremos lo que necesitemos hacer, la podemos dividir, la podemos
00:08:22
mostrar al usuario, es decir aquí podemos hacer
00:08:26
las operaciones que necesitemos hacer con las líneas
00:08:30
que se van leyendo. Y por último se cierra el fichero tal y como se cerraba el otro, lo único es que aquí se hace referencia al buffer de lectura.
00:08:34
Vamos a hacer este ejemplo en Java que os lo voy a juntar dentro de la aula virtual para que lo tengáis por completo, es decir, un ejemplo completo
00:08:50
de cómo se utilizaría una aplicación de ficheros en java sencilla
00:09:02
sin muchas complicaciones
00:09:09
vamos a hacer las operaciones de insertar, eliminar, buscar, mostrar todo y salir
00:09:12
dentro de esta aplicación lo que vamos a hacer es guardar los datos de una persona
00:09:19
su DNI, nombre, apellidos, edad, dirección y teléfono
00:09:25
la operación de insertar lo que va a hacer es añadir registros al fichero de datos es decir
00:09:29
añadir no sobre escribir vale tener en cuenta eso eliminar lo que va a hacer es eliminar un registro
00:09:36
del fichero aquí para hacer la eliminación se utiliza una técnica especial de programación en
00:09:45
la que se lee todo el fichero excluyendo el que se quiere eliminar esos datos se van guardando
00:09:51
en un fichero auxiliar y por último se pasan otra vez al fichero original. De esta forma
00:09:59
van a estar todos los ficheros, todos los registros excepto el registro que queramos
00:10:05
eliminar. La instrucción de buscar lo que va a hacer es buscar un dato, si lo encuentra
00:10:10
lo muestra en la aplicación y si no pues mostrará un error. El caso de mostrar todo
00:10:18
lo que hace es mostrar todos los datos que contenga el fichero, la opción de salir que nos saca de la aplicación.
00:10:26
Como dato así importante deben aparecer los registros grabados para que el usuario sepa cuántos registros contiene el fichero
00:10:34
y por último un selector de opciones para que el usuario pueda elegir la opción del menú que sea necesaria.
00:10:42
El esquema general de la aplicación, vamos a tener un proyecto principal en Java, obviamente, vamos a tener una clase fichero que la vamos a utilizar para manejar las operaciones del fichero y vamos a utilizar una clase persona para manejar los datos que guardamos en el fichero.
00:10:49
vamos a ver cómo están realizadas estas clases
00:11:15
aunque como digo las tenéis en el fichero
00:11:23
en el proyecto que voy a juntar tenéis esto en detalle
00:11:26
y podéis verlo un poquito mejor
00:11:29
la clase persona va a tener los atributos de una persona
00:11:32
porque son los que vamos a guardar
00:11:35
y son los que tenéis en pantalla
00:11:38
tampoco cabe mucho comentario respecto a esto
00:11:39
y los métodos va a tener como veis dos constructores
00:11:43
uno es un constructor en el que hay que pasarle todos los datos de la persona
00:11:48
para que genere o para que cree el objeto
00:11:53
y el otro crea el objeto mediante un string
00:11:56
en este string ya veréis que se separan los parámetros
00:12:00
para que después estos parámetros podamos ir incluyéndolos en cada uno de estos parámetros
00:12:03
En definitiva los constructores sirven para cargar el objeto pero de forma diferente
00:12:10
Los métodos getter se aplican al DNI, al nombre de pedido, edad, dirección y teléfono
00:12:15
Y sirven como ya sabéis para obtener estos valores del objeto en tiempo de ejecución si es necesario
00:12:22
Y los métodos setter funcionan de forma análoga pero en lugar de obtener el dato lo que hacen es setear el dato
00:12:31
Si os fijáis todos los setter llevan un parámetro y sin embargo los getter no, porque los getter van a obtener un valor y estos los van a establecer.
00:12:40
Una cosa importante, un método importante es el método toString que se aplica a los objetos.
00:12:50
El método toString viene implícito en todos los objetos y hay que sobrescribirlo para que nosotros podamos realizar la siguiente operación.
00:12:57
El método toString lo que hace es que nos permite este objeto y sus valores pasarlos a una cadena.
00:13:10
Es decir, cuando nosotros creamos el objeto persona que tiene campos individuales,
00:13:18
al usar toString podemos reconvertirlo en una sola cadena.
00:13:24
Os aconsejo que miréis este método para que veáis cómo está implementado en la aplicación.
00:13:30
Es bastante sencillo y simplemente lo que hace es concatenar los valores de la persona
00:13:35
y devolverlos a la parte de la aplicación que la ha llamado.
00:13:41
El fichero, la clase fichero, pues solo tiene estos dos atributos,
00:13:49
el nombre de fichero y el número de registros que tiene el fichero.
00:13:54
Y, bueno, tiene un constructor con el nombre del fichero y el nombre de registros.
00:13:58
Tiene un método para contar los registros.
00:14:04
uno para mostrar los datos, muestra el listado de todos los datos del fichero
00:14:07
hay un método que nos permite contar cuántos registros tiene
00:14:12
para después pasárselo a la variable en un registro
00:14:17
nos permite eliminar un registro, para ello nos pedirá el nombre de un fichero auxiliar
00:14:21
que es lo que os decía antes y un DNI
00:14:27
os recuerdo que el nombre del fichero auxiliar lo vamos a usar para meter desde el fichero normal
00:14:30
todos los datos al fichero auxiliar
00:14:36
excepto el dato que queremos eliminar
00:14:38
y después sobreescribiremos el fichero original
00:14:41
de esta forma hacemos la eliminación del fichero
00:14:44
tenemos en la clase persona
00:14:47
el método buscar registro
00:14:51
para buscar un registro
00:14:53
y el de añadir un registro que sirve para escribir
00:14:55
dentro de la clase fichero
00:14:59
pues tenemos también estos métodos los los métodos mostrar error mostrar registro y limpiar pantalla
00:15:08
aquí tenemos en pantalla un esquema general de la aplicación si os fijáis el proyecto que lo he
00:15:27
llamado proyecto ficheros está constituido por el proyecto general la clase persona en la clase
00:15:36
fichero vale aquí lo que quería es que veréis la estructura de ficheros y sobre todo que veáis que
00:15:43
todos están construidos bajo el mismo paquete vale bajo el mismo paquete proyecto de ficheros
00:15:49
os lo digo porque si lo hacéis así vosotros también no tendréis que estar importando a
00:15:55
las clases ya que todas estas clases se van a ir se verán desde el proyecto principal y entre ellas
00:16:01
si las hacéis dentro del mismo paquete, ¿vale?
00:16:07
Este dato es importante porque así la construcción del proyecto
00:16:10
os va a resultar mucho más sencilla.
00:16:14
Por último, decir cómo está construido el proyecto principal.
00:16:21
El proyecto principal, que es del que no hemos hablado,
00:16:28
pues está creado mediante, bueno, aquí está puesto con un inicio y un fin.
00:16:31
Se crea un objeto fichero, que es lo importante,
00:16:38
por favor mirar cómo está creado este objeto y dentro de una estructura repetir hasta que no sea salir, pues se muestran estas opciones, insertar, eliminar, buscar y mostrar.
00:16:41
Cada una de estas funciones va a hacer una llamada a determinados métodos o procesos del propio programa principal.
00:16:53
Por ejemplo, estos tres, el de proceso, eliminar registros, buscar persona y mostrar datos, estos tres están implementados dentro del proyecto principal y esto es una llamada a un método del fichero.
00:17:03
Dentro de estos procesos a su vez podrían hacerse llamadas a métodos de las clases
00:17:19
Pero quiero que tengáis en cuenta que estos tres directamente se ejecutan desde el proyecto principal
00:17:26
Aunque estos tres pueden hacer llamadas a métodos de las clases
00:17:34
Y este directamente es una llamada a un método de una
00:17:38
Por último vamos a ver una ejecución rápida del proyecto
00:17:42
y vemos cómo funciona bueno aquí tenemos la ejecución del proyecto con las opciones de
00:17:48
insertar eliminar buscar mostrar y salir si mostramos bueno aquí nos dice que hay cinco
00:18:01
registros no sé si se verá bien en pantalla vamos a ver si es cierto vamos a elegir la opción 4 vale
00:18:07
Y aquí nos sale el listado de los cinco registros que tiene este fichero.
00:18:16
Por ejemplo, vamos a listar el registro 333, ¿vale?
00:18:24
Entonces, nos vamos a salir de aquí, le vamos a dar a la opción 3, que es buscar,
00:18:29
nos va a pedir un DNI, vamos a meterle el 333 y nos lista el registro 333.
00:18:34
Alguien podría pensar, ¿qué pasa si meto un registro que no existe?
00:18:42
Pues venga, vamos a verlo. Vamos a elegir la opción 3. Elegimos el registro 777, por ejemplo, que no existe y nos dice que no se encontró a la persona con DNI 777.
00:18:46
Podemos insertar algún registro más. Vamos a volver a mostrarlo todo y vamos a insertar, por ejemplo, a la persona 666 al final del registro.
00:19:01
Pues damos a la opción insertar, el DNI 666, nombre 666, apellido 666, edad 66, dirección 666 y teléfono 123456.
00:19:14
Vale, una cosa importante si os fijáis cuando estamos insertando registros es que no podemos dejar espacios en blanco
00:19:45
Bueno, en principio yo no puedo dejar espacios en blanco porque yo después el separador lo he puesto con un espacio en blanco
00:19:53
¿Esto qué significa? Pues que si por ejemplo los apellidos pusiera dos, él consideraría que hay dos datos en vez de en lugar de uno
00:19:59
¿Por qué? Pues porque como yo he puesto en la aplicación que el separador es un espacio en blanco
00:20:09
Me lo va a tomar como dos datos distintos
00:20:16
Por eso estoy metiendo los datos de esta forma
00:20:20
Tener esto en cuenta cuando vosotros tengáis que hacer el proyecto
00:20:22
Porque así podéis evitar errores
00:20:26
Si damos a Enter, pues me dice que si quiero meter otro registro
00:20:29
Yo le voy a decir que no
00:20:34
Y vamos a hacer mostrar todo otra vez
00:20:35
Para que veamos que, bueno, pues aquí al final veis que se ha insertado el registro
00:20:38
Por último vamos a comprobar la opción de eliminar
00:20:44
Vamos a intentar eliminar, pero vamos a intentar eliminar primero un registro que no exista
00:20:48
¿Vale? Por ejemplo el 777
00:20:53
Pues me dice que no se encontró la persona con el DNI 777
00:20:55
Vamos a eliminar al registro 333
00:21:00
aquí elegir primero la opción de eliminar el registro 333 y dice que se eliminó el registro 333
00:21:04
vamos a mostrar todo a ver si es cierto y efectivamente el registro 333 ya no aparece en pantalla
00:21:18
bueno pues hasta aquí este vídeo es el último de la colección de vídeos
00:21:27
y lo siguiente es que vosotros tenéis que hacer un proyecto con las especificaciones que se os indique.
00:21:33
- Idioma/s:
- Materias:
- Sistemas Microinformáticos y Redes
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Autor/es:
- Gerardo Ruiz Criado
- Subido por:
- Gerardo R.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 2
- Fecha:
- 17 de abril de 2026 - 12:44
- Visibilidad:
- Clave
- Centro:
- IES LA ARBOLEDA
- Duración:
- 21′ 44″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 417.02 MBytes