package org.nutz.tools;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import org.nutz.lang.Files;
import org.nutz.lang.Streams;
import org.nutz.lang.util.Disks;
import org.nutz.lang.util.FileVisitor;
public class UTF8_BOM {
public static void main(String[] args) {
final byte[] UTF_BOM = new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
final byte[] bom = new byte[3];
Disks.visitFile(new File("."), new FileVisitor() {
public void visit(File file) {
try {
FileInputStream fis = new FileInputStream(file);
fis.read(bom);
if (bom[0] == UTF_BOM[0] && bom[1] == UTF_BOM[1] && bom[2] == UTF_BOM[2]) {
System.out.println("Found BOM --> " + file);
byte[] data = Streams.readBytes(fis);
fis.close();
Files.write(file, data);
System.out.println("Fixed");
}
}
catch (Throwable e) {
e.printStackTrace();
}
}
}, new FileFilter() {
public boolean accept(File pathname) {
if (pathname.isDirectory())
return true;
return pathname.getName().endsWith(".java") && pathname.length() > 3;
}
});
}
}