java: como convertir un archivo a utf8

  String charset = "ISO-8859-1"; // or what corresponds
  BufferedReader in = new BufferedReader( 
      new InputStreamReader (new FileInputStream(file), charset));
  String line;
  while( (line = in.readLine()) != null) { 
    ....
  }

Ahí tienes el texto decodificado. Puede escribirlo, mediante los métodos simétricos Writer / OutputStream, con la codificación que prefiera (por ejemplo, UTF-8).

Respuesta 1

El siguiente código convierte un archivo de srcEncoding a tgtEncoding:

public static void transform(File source, String srcEncoding, File target, String tgtEncoding) throws IOException {
    BufferedReader br = null;
    BufferedWriter bw = null;
    try{
        br = new BufferedReader(new InputStreamReader(new FileInputStream(source),srcEncoding));
        bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(target), tgtEncoding));
        char[] buffer = new char[16384];
        int read;
        while ((read = br.read(buffer)) != -1)
            bw.write(buffer, 0, read);
    } finally {
        try {
            if (br != null)
                br.close();
        } finally {
            if (bw != null)
                bw.close();
        }
    }
}

--EDITAR--

Usando Try-with-resources (Java 7):

public static void transform(File source, String srcEncoding, File target, String tgtEncoding) throws IOException {
    try (
      BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(source), srcEncoding));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(target), tgtEncoding)); ) {
          char[] buffer = new char[16384];
          int read;
          while ((read = br.read(buffer)) != -1)
              bw.write(buffer, 0, read);
    } 
}
Respuesta: 2

Necesita saber la codificación del archivo de entrada. Por ejemplo, si el archivo está en latín-1, haría algo como esto,

        FileInputStream fis = new FileInputStream("test.in");
        InputStreamReader isr = new InputStreamReader(fis, "ISO-8859-1");
        Reader in = new BufferedReader(isr);
        FileOutputStream fos = new FileOutputStream("test.out");
        OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
        Writer out = new BufferedWriter(osw);

        int ch;
        while ((ch = in.read()) > -1) {
            out.write(ch);
        }

        out.close();
        in.close();
Respuesta: 3

¿Las diapositivas de la presentación vinculadas desde la página de colecciones de Google están disponibles en algún lugar en formato PDF en la web? Es decir, estoy buscando las diapositivas del video resumen, ya que es más fácil de buscar ...

Tengo una aplicación Java implementada en Tomcat 7 ejecutándose en Ubuntu 10.04. Ha habido un problema durante la apertura de un socket del servidor que no pude reproducir hasta ahora: java.net.SocketException: No se puede asignar ...

¿Alguien sabe cómo guardar una imagen de archivo con mostrar previamente un cuadro de diálogo para elegir dónde está la ubicación e ingresar un nombre del archivo? gracias por tu respuesta, lo aprecio

Hola a todos, tengo un error que rompe mi compilación sin ninguna razón, aquí está el mensaje de error: error: error al leer /.m2/repository/com/sun/jdmk/jmxtools/1.2.1/jmxtools-1.2.1.jar; error al abrir ...