import java.io.*; public class Converter { String filename; boolean consoleOut = false; public Converter(String filename, boolean consoleOut) { this.filename = filename; this.consoleOut = consoleOut; } public void convert() { try { System.out.println(System.getProperty("user.dir")); File ifile = new File(filename); InputStreamReader isr = new InputStreamReader(new FileInputStream(ifile.getPath()), "GB2312"); BufferedReader in = new BufferedReader(isr); BufferedWriter out = null; if (!consoleOut) { File ofile = new File(filename + ".utf8"); OutputStream fout = new FileOutputStream(ofile); OutputStream bout = new BufferedOutputStream(fout); OutputStreamWriter osw = new OutputStreamWriter(bout,"UTF-8"); out = new BufferedWriter(osw); } String str; while ((str = in.readLine()) != null) { if (consoleOut) { System.out.println(str); } else { str += "\n"; out.write(str, 0, str.length()); } } if (out != null) out.close(); if (in != null) in.close(); } catch (IOException e) { System.out.println("Conversion Failed!"); e.printStackTrace(); System.exit(1); } } public static void main(String [] args) { boolean consoleOut = false; if (args.length < 1) { System.err.println("Need a file name\n"); System.exit(1); } if (args.length == 2 && "-".equals(args[1])) { consoleOut = true; } Converter c = new Converter(args[0], consoleOut); c.convert(); } }