Cambios en el JDK 1.1: El Ejemplo ReverseTest
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);
}
}
}