00:01 hola que tal bienvenidos a todos a otra 00:04 entrega de este curso de programación en 00:05 java bueno pues nos encontrábamos viendo 00:08 el tema de los ficheros y directorios si 00:10 recordáis el vídeo anterior ya vimos 00:12 cómo acceder pues a un directorio listar 00:15 los ficheros que hay en su interior 00:16 vamos a ver en este vídeo cómo crear 00:19 nuevos ficheros robos directorios como 00:21 escribir en esos ficheros incluir 00:24 archivos en esos directorios y también 00:26 cómo eliminar esos archivos y esos 00:28 directorios así que vamos a ello 00:32 bien antes de comenzar con todas estas 00:34 cosas así que debo mencionar un aspecto 00:36 importante acerca de las rutas el tema 00:39 fundamental a la hora de manipular de 00:41 manejar la clase finn o en el vídeo 00:44 anterior que hemos estado manejando una 00:45 ruta absoluta como la que veis en 00:46 pantalla de dos puntos barra y users 00:49 etcétera y bueno pues como bien sabéis 00:51 java pretende ser un lenguaje 00:52 multiplataforma pretende ser y es 00:54 entonces dependiendo del sistema 00:56 operativo que estés utilizando la barra 00:59 separadora que utilizamos en las rutas 01:02 es de una forma o de otra entonces puede 01:04 ser por ejemplo una barra invertida 01:06 hacia la izquierda pero puede ser 01:08 también una barra de invertir a la 01:10 derecha o al revés como lo queráis ver 01:12 no entonces claro si yo utilizo una 01:15 barra invertida pues como lo estoy 01:16 haciendo ahora tal vez este programa 01:18 funcione en sistemas windows pero a lo 01:20 mejor no funciona en sistemas linux u 01:22 otros u otros sistemas operativos que 01:25 hacen en estos casos cuando quieres 01:27 asegurarte de que las rutas sean 01:28 correctamente interpretadas por 01:30 cualquier sistema operativo bueno pues 01:32 en vez de utilizar la barra de turno 01:33 válida para tu sistema operativo lo que 01:35 tienes que hacer es recurrir a un campo 01:38 de la 01:39 clase file a un campo estático 01:41 concretamente al campo separador es 01:43 estático devuelve el string que será la 01:46 barra de turno y al ser estático podría 01:48 salir lo que implica hay que utilizar el 01:49 nombre de la clase para poder acceder a 01:51 él 01:52 y lo único que hay que hacer sé que es 01:54 más complejo pero con esto te aseguras 01:55 la compatibilidad con cualquier sistema 01:58 operativo pues es ir concatenando pues 02:01 este campo de clase file punto separa 02:05 editor con el resto de la ruta es decir 02:07 en este caso pues diríamos de dos puntos 02:10 y a continuación 02:11 esto lo concatenados con file punto 02:14 separa entorno y ahora pues esto a su 02:17 vez lo concatenados con el siguiente 02:19 string que por supuesto no debe de tener 02:22 barras no sé que es un poco laborioso 02:25 pero si quieres como digo asegurarte la 02:26 compatibilidad pues hay que hacerlo así 02:28 país.se para editor y así sucesivamente 02:31 bueno voy a parar el vídeo para que no 02:33 veáis porque ya demás me equivoco 02:34 bastante a la hora de escribir y no 02:37 tengáis que sufrir el suplicio éste 02:40 bien pues en definitiva quedaría como 02:42 veis en pantalla espero no haberme 02:43 equivocado en ningún punto si le damos 02:45 al play comprobamos el funcionamiento y 02:47 vemos como el programa pues sigue 02:49 funcionando y bueno pues una vez dicho 02:52 esto vamos a continuar ahora sí viendo 02:56 cómo crear nuevos archivos cómo crear 02:58 nuevos directorios y para ello pues ya 03:01 he preparado dentro del paquete en el 03:03 que estábamos trabajando anteriormente 03:04 de ficheros directorios una nueva clase 03:06 que es la clase creando que la tengo 03:08 completamente vacía lo único que he 03:10 hecho ha sido importar el paquete java y 03:12 entonces lo que vamos a hacer va a ser 03:14 crear pues por ejemplo un nuevo 03:16 directorio dentro de la carpeta va a ser 03:19 que es la que estamos manejando en estos 03:20 vídeos para no tener que escribir tanto 03:23 lo que voy a hacer es recurrir al 03:24 archivo anterior copiar toda esta ruta 03:28 por supuesto instancia cndh o la clase 03:31 file y ahora imaginaos que yo quiero 03:33 crear un nuevo directorio dentro de la 03:35 carpeta ya va a ser 03:38 si abro la carpeta ja va a ser pues 03:40 tengo lo que teníamos anteriormente no 03:42 los archivos de turno y la subcarpeta 03:44 ponemos imaginaos que quiero crear una 03:47 nueva carpeta más dentro de este 03:48 directorio bueno pues lo que habría que 03:50 hacer es utilizar el método mk y ver si 03:54 nos vamos a la api de java y echamos un 03:56 vistazo pues a la lista de métodos hay 03:58 uno en concreto que éste que me cabe ir 04:02 que este tipo julián que lo que hace es 04:04 crear un directorio tal y como lo 04:06 nombramos en el pack name no luego 04:10 entonces primero antes de utilizar este 04:12 método como me va a crear un método 04:13 especificado en el pack name lo que 04:15 podemos hacer es irnos al pit lane y 04:19 agregar file punto separa editor y lo 04:25 concatenados a su vez con un directorio 04:27 como podemos llamar a este directorio 04:28 podemos llamarle por ejemplo un nuevo 04:31 directorio por llamarlo de alguna forma 04:34 hecho esto ahora si podemos utilizar el 04:37 nombre de instancia de la clase file 04:39 para agregar ese directorio es decir 04:42 ruta punto m cádiz 04:46 momentito que aquí me equivoqué m 04:49 bueno pues hecho esto ejecutamos le 04:52 damos al play 04:53 aparentemente no pasa nada pero si nos 04:56 vamos a la carpeta pues comprobamos como 04:58 efectivamente tenemos un nuevo 05:00 directorio el cual tiene el nombre que 05:02 le hemos indicado en el pack name en la 05:05 ruta pues así de sencillo es crear un 05:08 nuevo directorio en cuanto a crear un 05:10 archivo pues lo que tenemos que hacer 05:11 voy a comentar 05:12 la línea del mk dir lo que tenemos que 05:15 hacer es indicar en el path el nombre de 05:17 del archivo no entonces bueno en esta 05:20 ocasión en vez de indicarle el nuevo 05:21 directorio pues voy a indicarle como 05:24 nombre de archivo el siguiente prueba 05:29 texto punto txt dependiendo de la 05:33 extensión que le indique es aquí en el 05:34 pad este va a crear un archivo de un 05:36 tipo o de otro una vez que hemos hecho 05:38 esto tenemos que utilizar el método 05:40 create new fire porque si nos vamos a la 05:43 api de java observamos que efectivamente 05:46 hay un método que escribe new file donde 05:48 está que no te ve aquí está el cual nos 05:51 dice pues que automáticamente crea un 05:53 nuevo y vacío entero con el nombre 05:56 creado en el papel y lo va a hacer sólo 05:59 si esté activo no existe no en el caso 06:02 de que exista pues no te lo va a crear 06:03 nuevo entonces si pulsamos en este 06:06 método para que la api nos amplió un 06:08 poquito la información vemos algo 06:11 importante este método lanza una 06:13 excepción de tipo de excepción y ya 06:15 estaremos todos lo que eso implica con 06:18 lo cual para probarlo si nosotros nos 06:22 vamos a nuestro código y le decimos ruta 06:24 punto y ahora create y file pues esto 06:28 nos debe de dar error 06:30 efectivamente la zona infección de tipo 06:32 y luego entonces sabemos lo que hacer 06:34 podemos decirle a eclipse que robe esta 06:36 instrucción con un try card una vez que 06:40 ya tenemos esta instrucción dentro del 06:41 try catch pertinente ahora sí estamos en 06:44 disposición de crear el archivo le damos 06:46 al play y si todo ha ido bien debemos de 06:48 tener en nuestra carpeta ahí está un 06:51 nuevo archivo en este caso de tipo txt 06:54 el cual por supuesto pues está vacío 06:56 pero bueno el archivo está con lo cual 06:58 éste sería el código para crear 06:59 cualquier tipo de archivo en un 07:02 directorio en concreto desde un programa 07:03 de java 07:06 y ahora puedes para rizar el rizo cómo 07:09 podemos escribir cómo podemos crear 07:11 mejor dicho un nuevo activo 07:13 y escribir en su interior que sería 07:15 hacer dos tareas en una lo de escribir 07:17 en su interior ya lo hemos visto en 07:18 vídeos anteriores no voy a explicar nada 07:20 del nuevo código si alguien tiene dudas 07:22 que retroceda unos cuantos vídeos 07:23 concretamente al vídeo donde explicamos 07:26 cómo escribir en un archivo y lo 07:28 entenderá rápidamente no pues una vez 07:30 que ya hemos creado el código para 07:32 construir un nuevo archivo yo me 07:35 situaría a continuación del try catch y 07:39 aquí hay muchas formas de hacerlo no yo 07:41 lo voy a hacer de la siguiente forma 07:42 como lo hicimos en su día voy a crear 07:45 una instancia pues de una clase que en 07:48 principio no existe pero que vamos a 07:50 crear ahora después a esta instancia la 07:51 voy a llamar accede guión bajo es y voy 07:53 a decir que es igual a new que 07:55 escribiendo la clase que no existe y que 07:56 vamos a tener que crear ahora mismo se 07:59 va a llamar escribiendo y este método 08:02 accede es pues este método pero en esta 08:05 instancia va a llamar a un método 08:07 perteneciente a esta clase a la cual 08:08 vamos a llamar escribir 08:10 escribir va a recibir un parámetro al 08:14 cual voy a llamar archivo destino 08:18 que va a ser archivo destino vamos a 08:20 empezar por este parámetro que le 08:22 estamos pasando esto va a ser la ruta a 08:26 la carpeta donde quiero crear el nuevo 08:27 archivo y la ruta la tengo guardada en 08:29 la instancia de fai es toda esta tan 08:31 larga no es decir aquí hace un instante 08:34 pues hemos creado una ruta en la cual 08:36 apunta a un archivo que se debe llamar 08:38 prueba texto punto txt 08:40 bueno pues voy a utilizar esta ruta 08:42 almacenada en la instancia ruta para 08:45 pasarle eso por parámetro con lo cual a 08:47 continuación de la instancia de la clase 08:49 file yo lo que hago es crear una 08:52 variable de tipo string a la que voy a 08:53 llamar archivo destino 08:56 string archivo destino y voy a decir que 09:00 esto va a ser igual a ruta punto que 09:03 absolut para que lo que hemos hecho con 09:06 esto pues este método lo vimos en el 09:08 medio anterior hemos almacenado esta 09:10 variable la ruta de la carpeta y esa 09:13 ruta pues es la que le voy a pasar por 09:15 parámetro al método escribir que todavía 09:17 ni hemos creado 09:18 bueno pues una vez hecho todo esto me 09:20 sitúo a continuación de esta clase y 09:22 tenemos que crear una clase nueva a la 09:25 cual vamos a denominar es escribiendo lo 09:27 entonces class 09:32 escribiendo aquí abrimos variables de la 09:36 clase y la vamos cerrando ya 09:40 y dentro de esta clase pues tenemos que 09:42 crear el método escribir que hemos 09:43 mencionado antes no algo entonces public 09:45 void escribir 09:47 hemos decidido llamar a este método 09:48 escribir por dios 09:51 escribir iba a recibir un parámetro de 09:54 tipo string actual voy a llamar por 09:56 ejemplo ruta archivo abrimos la llave de 10:00 este método y la vamos cerrando ya yo 10:02 creo que está claro que lo que hay 10:03 almacenado en esta variable viaja y se 10:06 almacena en ruta archivo cuando llamemos 10:08 a este método en definitiva lo que 10:10 estamos almacenando en ruta archivo en 10:12 este parámetro es la ruta a la carpeta 10:14 donde queremos crear el archivo y 10:16 escribirlo bien pues una vez que hemos 10:18 hecho todo esto dentro del método pues 10:20 vamos a crear por ejemplo una variable 10:22 de tipo string a la cual voy a denominar 10:24 frase vamos aquí por ejemplo esto que es 10:28 un ejemplo espero que salga algo así una 10:33 vez que hemos creado la variable de tipo 10:35 string pues ahora lo que tenemos que 10:36 hacer es utilizar la clase país raiteri 10:39 de esta clase hablamos ya en vídeos 10:41 anteriores luego entonces como esto 10:44 lanzaba una excepción tengo que meterlo 10:47 todo dentro de un try catch 10:49 repito que estos son conceptos vistos en 10:52 vídeos anteriores 10:54 bueno pues creo el try card el catch de 10:56 momento pues lo voy a dejar vacío y 10:59 ahora pues lo que tenemos que hacer aquí 11:00 dentro del project es crear una 11:02 instancia de file writer writer con una 11:05 t 11:07 el rider voy a llamar a esta instancia 11:08 escritura igual a new para el greater y 11:16 como argumento del constructor pues ruta 11:19 archivo no entonces aquí ruta archivo 11:24 que es lo que le estamos diciendo con 11:26 esta instrucción le estamos diciendo que 11:28 vamos a escribir pues en el archivo que 11:32 le estamos indicando con ruth archivo 11:34 que viene de la otra clase y que es lo 11:36 que vamos a escribir pues vamos a 11:37 escribir la frase tenemos almacenado en 11:39 esa variable luego entonces 11:42 aquí lo que teníamos que hacer es 11:43 recorrer con un bucle por toda la frase 11:46 e ir escribiendo carácter a carácter 11:49 pues esa frase dentro del archivo es 11:51 decir por kim kye igual a 0 mientras que 11:55 sea menor que para ese punto leen 11:59 pues entonces me incrementas la y de uno 12:02 en uno y aquí pues utilizando el método 12:04 karate de la clase spring que tantas 12:06 veces hemos visto es decir escritura 12:08 punto right 12:11 repito ha visto en vídeos anteriores 12:13 para hacer punto zárate inicial el 12:17 asistente así no tengo que escribir 12:20 sara desde vez escribiendo me carácter a 12:23 carácter pues lo que hay ahí y luego ya 12:25 para finalizar pues a continuación del 12:28 bucle por cerramos el string escritura 12:31 punto close con esto estamos pues 12:33 uniendo los conocimientos aprendidos en 12:36 todos los vídeos de string de datos 12:37 hasta ahora bueno pues si esto va bien 12:39 porque creo que ya está terminado al 12:41 ejecutar este programa debería de 12:42 crearlos un nuevo archivo que se debe de 12:45 llamar prueba texto y dentro de ese 12:47 activo prueba texto pues debería de 12:49 escribir esta frase con lo cual todo en 12:51 uno creo desde un programa java un 12:53 archivo nuevo y además soy capaz de 12:55 escribir dentro de ese archivo la 12:57 información que se me antoje para ello 12:58 antes de ejecutar voy a borrar prueba 13:01 texto para que veáis que lo crea de 13:03 nuevo y además con el texto de turno 13:06 bueno pues ejecutamos el programa le 13:08 damos al play aparentemente todo va bien 13:10 y si nos vamos a la carpeta pues aquí 13:12 está nuevamente nuestro archivo y si 13:14 abrimos el archivo pues aquí está la 13:16 frase que tenía que escribir 13:19 bien pues ya para finalizar todo esto 13:23 vamos a ver cómo borrar un archivo o 13:26 directorio sería lo mismo para un 13:27 directorio no vamos a borrar este activo 13:29 prueba texto punto txt y para ello pues 13:31 vamos a hacer de la forma más sencilla 13:33 posible 13:35 voy a crear rápidamente una nueva clase 13:37 dentro de este paquete que se va a 13:38 llamar pues por ejemplo eliminarlo y 13:42 eliminar esta clase pues va a tener su 13:44 método line y dentro de esta clase pues 13:47 va a ser tan sencillo como decirle que 13:49 me elimine el fichero especificado en 13:52 una ruta copio la ruta para no tener que 13:54 escribirla aquí está me sitúo debajo y 13:57 es tan sencillo como decirle ruta punto 13:59 de lt delete es el método para borrar 14:03 que tenemos en la api de java 14:04 perteneciente a la clase file si no 14:07 vamos a echar un vistazo a los métodos 14:08 pues buscamos el método de lepe aquí 14:11 está y como podéis ver me dice que desde 14:14 gorra la fila o directorio especificada 14:17 en el pack de ahí está en este caso es 14:20 un archivo bueno pues si ejecutamos y le 14:23 damos al play ahora vamos a la carpeta 14:26 y me deja fatal no prueba texto vamos a 14:29 ver qué es lo que ha fallado aquí vamos 14:31 a ver a lo especificado perdonar se me 14:33 ha olvidado aquí copiar prueba texto 14:35 falta aquí en la ruta para el punto se 14:39 para aitor 14:41 más prueba texto se llama esto pues 14:44 prueba bajo texto punto txt ahora sí una 14:49 vez que la ruta está correcta que se me 14:51 había olvidado añadir el activo pulso en 14:52 el play vale aparentemente no ocurre 14:55 nada podría la carpeta pues 14:56 efectivamente 14:59 bueno pues vamos a dejar el vídeo en el 15:01 punto en el que nos encontramos yo creo 15:03 que todo esto es fácil ya sabemos cómo 15:05 acceder a un archivo ver lo que hay en 15:07 su interior 15:08 sabemos detectar si es un archivo o si 15:10 es un directorio sabemos crear nuevos 15:12 archivos sabemos crear los directorios y 15:14 sabemos también borrar archivos y 15:16 directorios y con lo visto ya hace unos 15:18 cuantos vídeos escribir dentro de un 15:20 archivo 15:21 bueno pues os digo de siempre os invito 15:23 a que permanezcamos atentos a la próxima 15:25 entrega hasta entonces que vaya bien