El ejemplo ReverseTest tiene tres problemas.
Primero, utiliza el m�todo DataInputStream.readLine que est� caducado en el JDK 1.1 porque no convierte correctamente los bytes en caracteres. La mayor�a de los programas que utilizan DataInputStream.readLine pueden hecer un sencillo cambio para utilizar el mismo m�todo de la nueva clase BufferedReader. Simplemente reemplaza este c�digo:
DataInputStream d = new DataInputStream(in);
por �ste otro:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
ReverseTest es uno de esos programas en los que se puede realizar este sencillo cambio.
Segundo, ReverseTest crea expl�citamene un PrintStream para escribir en una URLConnection. Utilizar un PrintStream ha caducado en favor de PrintWriter.
Y finalmente, ReverseTest debe llamar al nuevo setDoOutput en su URLConnection para poder escribir en la conexi�n.
Aqu� tienes la nueva versi�n de ReverseTest que corrige estos problemas:
import java.io.*;
import java.net.*;
public class ReverseTest {
public static void main(String[] args) {
try {
if (args.length != 1) {
System.err.println("Usage: java ReverseTest string_to_reverse");
System.exit(1);
}
String stringToReverse = URLEncoder.encode(args[0]);
URL url = new URL("http://java.sun.com/cgi-bin/backwards");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
PrintWriter writer = new PrintWriter(connection.getOutputStream());
writer.println("string=" + stringToReverse);
writer.close();
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String inputLine;
while ((inputLine = reader.readLine()) != null) {
System.out.println(inputLine);
}
reader.close();
} catch (MalformedURLException me) {
System.err.println("MalformedURLException: " + me);
} catch (IOException ioe) {
System.err.println("IOException: " + ioe);
}
}
}