Solucionado (ver solución)
Solucionado
(ver solución)
8
respuestas

Cómo capturar el input de la consola?

No estoy pudiendo capturar el input de la consola para imprimir en un archivo. Este es mi código. Alguna recomendación? Captura de pantalla de la consulta

8 respuestas

¡Hola Alumno! ¡Deseo que estés bien!

El while debe ser while (linea != null && !linea.isEmpty()) {

Lo otro seria dar un refresh sobre la carpeta de tu proyecto para que te aparezca el archivo aqui te dejo una ilustracion:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Das clic derecho sobre la carpeta y te aparecerá esas opciones.

¡Te deseo mucho éxito en tus estudios! y recuerda que aquí estaremos para apoyarte!

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

La linea de código coincide con la mía (la tipografía que uso reemplaza != por el signo que se muestra). Al hacer un refresh sobre el proyecto aparece txt nuevo, pero sin contenido. De haberlo tenido previamente a la ejecución del código, lo elimina (queda el txt vacío). Luego de ejecutar el código, hago click en la consola, escribo un par de líneas y luego detengo la consola (como lo indica Diego en la clase), pero nada aparece dentro del archivo txt.

Ya encontre tu problema. Esta en la direccion del archivo, tienes que poner su direccion absoluta dentro del proyecto

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Por ejemplo, mi archivo esta en src\prueba\texto.txt

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

En java siempre se ocupa la diagonal inversa parta indicar directorios. A su vez, la diagonal inversa se utiliza como carácter de escape, por lo que se escribe dos veces para que se identifique que estamos escribiendo la diagonal inversa.

El problema no es que no se genere el archivo o que no lo encuentre luego, es que dentro del archivo generado no aparece lo que yo escribo en la consola. Probé cambiando la ruta, aparece el archivo pero aún sin contenido.

Si, eso lo entiendo, pero precisamente por eso es que no te lo esta guardando por que la ruta no esta correcta.

Replique tu código y la unico diferente fue eso, la ruta del archivo, por qué, aun si no escribes el nombre correcto de la ruta del archivo no te marca error ni te lanza una excepción.

Podrias mandar captura de los archivos de tu programa?

Cuando cambio la ruta me genera el mismo archivo, en otro lugar (en la carpeta que le diga), pero lo deja siempre en blanco. Probé con la modificación que me indicaste (no en la carpeta prueba, porque no la tengo, sino en src). Genera el archivo ahí, pero no carga el contenido. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

solución!

Hola como estás? Vi que en la primera de las dudas del foro tienen la misma consulta y fue resuelta usando las teclas CTRL + Z luego de escribir en consola, ya que considera una línea nula y sale de la ejecución. Parece ser un problema que al detener el programa no se guarda en el archivo lo escrito y por eso queda en blanco. Aquí esta el link de la respuesta a tu consulta: https://app.aluracursos.com/forum/topico-no-pude-hacer-funcionar-el-system-in-118035.

De todas maneras a mi tampoco me funcionaba de esa forma, por lo que adapté el código para que al escribir una palabra determinada ("finish") en una nueva línea, cortara y cerrara la ejecución; y de esa manera sí se guardaran los cambios en el archivo. Aquí te dejo mi pequeña modificación en el código: Espero te sirva alguna de las soluciones, saludos!

while((linea = bufferedReader.readLine()) != null){
    bufferedWriter.write(linea);
    bufferedWriter.newLine();
    if(linea.equals("finish")){
        bufferedWriter.close();
        break;
    }
}

bufferedReader.close();
bufferedWriter.close();

}

Gracias Gonzalo, el problema fue solucionado!