package com.macfaq.io;
import java.io.*;
public class SourceWriter extends FilterWriter {
public SourceWriter(Writer out) {
super(out);
}
public void write(char[] text, int offset, int length) throws IOException {
for (int i = offset; i < offset+length; i++) {
this.write(text[i]);
}
}
public void write(String s, int offset, int length) throws IOException {
for (int i = offset; i < offset+length; i++) {
this.write(s.charAt(i));
}
}
public void write(int c) throws IOException {
// we have to escape the backslashes below
if (c == '\\') out.write("\\u005C");
else if (c < 128) out.write(c);
else {
String s = Integer.toHexString(c);
// pad with leading zeroes if necessary
if (c < 256) s = "00" + s;
else if (c < 4096) s = "0" + s;
out.write("\\u");
out.write(s);
}
}
// This is just a test method so I don't care if it
// throws an IOException
public static void main(String[] args) throws IOException {
for (int i = 0; i < args.length; i++) {
FileInputStream fin = new FileInputStream(args[i]);
InputStreamReader r = new InputStreamReader(fin, "UnicodeLittle");
SourceWriter sw = new SourceWriter(new OutputStreamWriter(System.out));
int c;
while ((c = r.read()) != -1) {
sw.write(c);
}
fin.close();
sw.close();
}
}
}
|