FileDocCategorySizeDatePackage
ConvertEncoding.javaAPI DocExample3231Sat Jan 24 10:44:30 GMT 2004je3.i18n

ConvertEncoding

public class ConvertEncoding extends Object
A program to convert from one character encoding to another

Fields Summary
Constructors Summary
Methods Summary
public static voidconvert(java.lang.String infile, java.lang.String outfile, java.lang.String from, java.lang.String to)

        // Set up byte streams.
        InputStream in;
        if (infile != null) in = new FileInputStream(infile);
        else in = System.in;
        OutputStream out;
        if (outfile != null) out = new FileOutputStream(outfile);
        else out = System.out;
	
        // Use default encoding if no encoding is specified.
        if (from == null) from = System.getProperty("file.encoding");
        if (to == null) to = System.getProperty("file.encoding");
	
        // Set up character streams.
        Reader r = new BufferedReader(new InputStreamReader(in, from));
        Writer w = new BufferedWriter(new OutputStreamWriter(out, to));
	
        // Copy characters from input to output.  The InputStreamReader
        // converts from the input encoding to Unicode, and the
        // OutputStreamWriter converts from Unicode to the output encoding.
        // Characters that cannot be represented in the output encoding are
        // output as '?'
        char[] buffer = new char[4096];
        int len;
        while((len = r.read(buffer)) != -1)  // Read a block of input.
            w.write(buffer, 0, len);         // And write it out.
        r.close();                           // Close the input.
        w.close();                           // Flush and close output.
    
public static voidmain(java.lang.String[] args)

        String from = null, to = null;
        String infile = null, outfile = null;
        for(int i = 0; i < args.length; i++) { // Parse command-line arguments.
            if (i == args.length-1) usage();   // All args require another.
            if (args[i].equals("-from")) from = args[++i];
            else if (args[i].equals("-to")) to = args[++i];
            else if (args[i].equals("-in")) infile = args[++i];
            else if (args[i].equals("-out")) outfile = args[++i];
            else usage();
        }

        try { convert(infile, outfile, from, to); }  // Attempt conversion.
        catch (Exception e) {                        // Handle exceptions.
            LocalizedError.display(e);  // Defined at the end of this chapter.
            System.exit(1);
        }
    
public static voidusage()

        System.err.println("Usage: java ConvertEncoding <options>\n" +
			   "Options:\n\t-from <encoding>\n\t" + 
			   "-to <encoding>\n\t" +
			   "-in <file>\n\t-out <file>");
        System.exit(1);