package com.javaeasy.encodingprocessor; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.javaeasy.fileiterator.ProcessFileSysItemIF; public class FileEncodingChanger implements ProcessFileSysItemIF { private List<String> processedFiles = new ArrayList<String>(); private String sourceEncoding = "UTF-8"; private String targetEncoding = "GBK"; public FileEncodingChanger(String p_sourceEncoding, String p_targetEncoding) { sourceEncoding = p_sourceEncoding; targetEncoding = p_targetEncoding; } public void initProcessor(File root) { } public String[] getProcessFileExtentions() { return new String[] { "java" }; } @Override public String[] getProcessFileNames() { return null; } public void preProcessFolder(File folder) { System.out.println("Processing Folder:" + folder.getPath()); } public void postProcessFolder(File folder) { System.out.println("Processed Folder:" + folder.getPath()); } public void preProcessFile(File file) { System.out.println("Processing File:" + file.getPath()); } public void processFile(File file) { try { ChangeFileEncodingUtils.changeFileEncoding(file, sourceEncoding, targetEncoding, false); } catch (IOException e) { System.err.println("File" + file.getPath() + " conversion failed: \tFrom " + sourceEncoding + " to " + targetEncoding); e.printStackTrace(); } } public void postProcessFile(File file) { System.out.println("Processed File:" + file.getPath()); processedFiles.add(file.getPath()); } public void done() { int count = processedFiles.size(); System.out.println("File processed:" + count); for (Iterator<String> it = processedFiles.iterator(); it.hasNext();) { System.out.println(it.next()); } } public String getSourceEncoding() { return sourceEncoding; } public void setSourceEncoding(String sourceEncoding) { this.sourceEncoding = sourceEncoding; } public String getTargetEncoding() { return targetEncoding; } public void setTargetEncoding(String targetEncoding) { this.targetEncoding = targetEncoding; } }