1 00:00:01,649 --> 00:00:15,310 Bueno, pues siguiendo con nuestro ejemplo de escáner, vamos a ver cómo podemos pasarle a ver de la entrada por defecto, el teclado, cómo podemos pasar aquí un fichero, que conozcamos un fichero, en este caso de texto. 2 00:00:15,310 --> 00:00:33,729 Vamos a ver. Bueno, conocemos que File nos da características de un fichero. Por ejemplo, voy a decirle que New File, y vamos a trabajar con un fichero que conocemos todos, en Linux, que es etc.wd, o donde se almacenan los usuarios del sistema. 3 00:00:33,729 --> 00:00:43,109 nos solicita lógicamente que integremos la librería correspondiente a File 4 00:00:43,109 --> 00:00:51,429 y en este momento yo puedo decirle que Scanner en vez de System.me que era el descriptor de la entrada 5 00:00:51,429 --> 00:00:53,969 lo que abra sea F 6 00:00:53,969 --> 00:00:58,770 en principio me ha salido una raya roja y muy importante y vamos a ver por qué es 7 00:00:58,770 --> 00:01:03,670 esa raya roja me dice que tengo que añadir o bien una declaración 8 00:01:03,670 --> 00:01:09,930 para arrojar las excepciones que se puedan producir o utilizar un bloque try-catch. 9 00:01:10,370 --> 00:01:12,569 Vamos a ver un bloque try-catch como lo haríamos. 10 00:01:13,549 --> 00:01:17,450 Lo primero que nos dice es, ¿puedes abrirlo o no? 11 00:01:17,670 --> 00:01:21,650 Porque el fichero puede que no lo encontremos y entonces no podrías abrirlo. 12 00:01:22,230 --> 00:01:26,590 Es lógica esta excepción que salta, con lo cual vamos a ver ahora qué podemos hacer. 13 00:01:26,590 --> 00:01:53,540 Bueno, pues podemos aquí poner un mensaje en el cual digamos algo así tan simple como System en la salida de errores que me muestre que no he podido mostrar el fichero, ¿vale? 14 00:01:54,459 --> 00:02:02,709 Y sin embargo, por este lado, voy a borrar toda la línea que tengo aquí del ejemplo anterior, que no me son útiles, ¿vale? 15 00:02:03,250 --> 00:02:08,389 y incluso aquí, acabar mi programa, es decir, ya está, ya ha acabado, ¿vale? 16 00:02:08,389 --> 00:02:13,250 Es una forma de programarlo, otra forma sería meter todo en el bloque try, todo lo que vamos a hacer. 17 00:02:14,069 --> 00:02:19,110 Y en la otra, ¿qué es lo que quiero hacer? Digo, pues mira, mientras que yo pueda seguir leyendo, pues ir leyendo. 18 00:02:19,330 --> 00:02:27,300 Yo sé que para leer una línea, no tengo más que leer la línea, y eso sé cómo se hace, ¿de acuerdo? 19 00:02:27,719 --> 00:02:34,719 Me voy a sc, digo next line, y ya estoy leyendo la línea. Con esto le diría la primera línea. 20 00:02:34,879 --> 00:02:39,280 pero quiero leer todas las que haya. ¿Cómo sé yo cuándo no hay más que leer? 21 00:02:39,960 --> 00:02:49,780 Pues porque dispongo a hacer un bucle que diga, mientras haya has próximos elementos, 22 00:02:50,000 --> 00:02:55,020 o máximos enteros, o boolean, o muy mal se tiene que dar para que no tengamos next line, 23 00:02:56,460 --> 00:03:01,039 mientras haya líneas, me vas leyendo las líneas. 24 00:03:01,039 --> 00:03:25,580 Y con esto yo puedo leer ya el fichero etc.padwork y ver su información. Vamos a ver si es verdad. Vamos a ejecutar este programa y efectivamente me ha mostrado toda la información de este fichero de texto. 25 00:03:25,580 --> 00:03:55,479 ¿De acuerdo? Con lo cual yo tengo aquí la información correspondiente a... exactamente igual que si estuviéramos tecleando un cat en Unix. Bueno, simplemente recordar que aquí lo que he hecho ha sido utilizar file para obtener el descriptor del fichero, objeto asociado a la clase file, y eso es lo que le he pasado a el escáner. 26 00:03:56,439 --> 00:03:57,120 ¿De acuerdo?