Java - Problema con Streams y símbolos especiales

   
Vista:

Problema con Streams y símbolos especiales

Publicado por Raúl (2 intervenciones) el 12/05/2016 14:46:18
Hola.

Cuando comunico dos aplicaciones utilizando Streams, siempre tengo el problema de las eñes y las tildes (entre otros símbolos) ya que no consigo enviarlas y/o recibirlas bien.

Por ejemplo, dejo el código de dos aplicaciones: una lee un fichero y se lo envía a otra utilizando sockets:

Aplicación que lee el fichero y lo envía:

Socket clienteSocket = new Socket();

InetSocketAddress addr = new InetSocketAddress("localhost", 5555);
clienteSocket.connect(addr);

OutputStream os = clienteSocket.getOutputStream();

BufferedReader br = new BufferedReader (new FileReader("c:\\fichero.txt"));

PrintWriter pw = new PrintWriter (os, true);
while (br.ready()) {
String line = br.readLine();
pw.println(line);
}

clienteSocket.close();

Aplicación que recibe el contenido:

try {
ServerSocket serverSocket = new ServerSocket();

InetSocketAddress addr = new InetSocketAddress("localhost", 5555);
serverSocket.bind(addr);

Socket newSocket = serverSocket.accept();
System.out.println("Conexión recibida");

InputStream is = newSocket.getInputStream();
BufferedReader br = new BufferedReader (new InputStreamReader(is));

String line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}

newSocket.close();
serverSocket.close();
}
catch (IOException e) {
e.printStackTrace();
}

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con Streams y símbolos especiales

Publicado por Tom (914 intervenciones) el 12/05/2016 18:34:15
Copiado de la doc. de FileReader (el énfasis es mío):
"Convenience class for reading character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream. "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar