Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change encoding of existing file with Java?

I need to programatically change the encoding of a set of *nix scripts to UTF-8 from Java. I won't write anything to them, so I'm trying to find what's the easiest|fastest way to do this. The files are not too many and are not that big. I could:

  • "Write" an empty string using an OutputStream with UTF-8 set as encoding
  • Since I'm already using FileUtils (from Apache Commons), I could read|write the contents of these files, passing UTF-8 as encoding

Not a big deal, but has anyone run into this case before? Are there any cons on either approach?

like image 875
Dan Avatar asked Apr 10 '12 17:04

Dan


1 Answers

As requested, and since you're using commons io, here is example code (error checking to the wind):

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class Main {
    public static void main(String[] args) throws IOException {
        String filename = args[0];
        File file = new File(filename);
        String content = FileUtils.readFileToString(file, "ISO8859_1");
        FileUtils.write(file, content, "UTF-8");
    }
}
like image 154
daveb Avatar answered Sep 28 '22 09:09

daveb