Hice exactamente igual al instructor, pero no me escribe el archivo. Incluso si le cambio el nombre al archivo de escritura y no lo cree, lo crea, pero no logro hacer que escriba lo que entro por la consola.
Hice exactamente igual al instructor, pero no me escribe el archivo. Incluso si le cambio el nombre al archivo de escritura y no lo cree, lo crea, pero no logro hacer que escriba lo que entro por la consola.
Hola Julian, espero que estés bien.
Java tiene sus desafíos. Ver más detalles a través de la documentación en el Link: Class FileInputStream
Es interesante que compartas tu código con nosotros directo en el canal Discord ou insertar bloque de código (Ctrl+Alt+C) aquí en el foro
para una mejor comprensión del error.
package ar.com.java.io.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
public class TestcopiarPegar {
public static void main(String[] args) throws IOException {
InputStream InputStream = System.in;
Reader inputStreamReader = new InputStreamReader(InputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
OutputStream fileOutputStream = new FileOutputStream("texto-consola.txt");
Writer outputStreamReader = new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamReader);
String linea;
while ((linea = bufferedReader.readLine()) != null) {
bufferedWriter.write(linea);
bufferedWriter.newLine();
}
bufferedWriter.close();
}
}
Este es el código. Cuando lo ejecuto, escribo en la consola, detengo la ejecución de la consola para que se escriba el archivo. Refresco para que aparezcan los cambios, pero el archivo me aparece vacío. Ese mismo código, si en ves de usar System.in uso creo un new FileInputStream("otroarchivo") funciona, lee ese archivo y lo escribe en el otro.
Estuve probando cosas, y lo que me parece que no me está tomando cuando detengo la consola es el bufferedWriter.close();
public class TestcopiarPegar {
public static void main(String[] args) throws IOException {
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
OutputStream fileOutputStream = new FileOutputStream("texto-consola.txt");
Writer outputStreamWriter = new OutputStreamWriter(fileOutputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(bufferedReader.readLine())
bufferedWriter.close();
}
}
Si hago esto, me imprime en el archivo la primer linea que escribo en consola, cuando apreto enter, se cierra la consola y se escribe el archivo.
pero si hago esto
String linea;
while ((linea = bufferedReader.readLine()) != null) {
System.out.println(linea);
bufferedWriter.write(linea);
bufferedWriter.newLine();
}
bufferedWriter.close();
A medida que voy escribiendo y apretando enter, el Syso me tira en consola lo que escribo ( o sea que a linea le llega lo que se captura de consola), pero cuando detengo la consola, no llega nada al archivo.
Incluso probe poner el bufferedWriter.close(); dentro del while, y si, escribe en el archivo la primer linea que escribo en la consola, ya la seguda me tira exception porque el archivo ya se cerro.
La verdad no se que puede ser....
Hola Julian, espero que esté bien.
Para crear un archivo con datos escritos por la consola, podemos usar System.in
tal como está en tu código. Comprobé que todo está correcto con tu código.
Lo que pasa es que en Eclipse IDE (sistema operativo windows) debes seguir unos sencillos pasos que marcan la diferencia.
Continúe con los siguientes pasos:
Continúa con tus estudios y cualquier duda estaremos aquí =)
Gracias María!!!!! Ahí me funcionó!!!!
Muchas gracias!!!!