package io; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.springframework.util.ResourceUtils; public class TestIo { public static void printStr() throws IOException { List<String> l = FileUtils.readLines(new File("D:\\myeclipseworkspace\\sy_gwcsUTF\\WebRoot\\WEB-INF\\applicationContext.xml")); for (String s : l) { if(s.toUpperCase().contains("ENCODING=\"GBK\"")) { s = s.replaceAll("encoding=\"GBK\"", "encoding=\"UTF-8\""); System.out.println("替換後"+s); } System.out.println(s); } } public static void bianma() throws Exception { String uft8Src = "D:\\myeclipseworkspace\\sy_gwcs_dm"; String gbkSrc = "D:\\\\myeclipseworkspace\\\\sy_gwcsUTF"; Collection<File> javaUtf8FileCol = FileUtils.listFiles(new File(uft8Src), new String[]{"xml"}, true); for (File javaUtf8File : javaUtf8FileCol) { //GBK格式文件路徑 String gbkFilePath = gbkSrc+javaUtf8File.getAbsolutePath().substring(uft8Src.length()); //使用GBK讀取數據,而後用UTF-8寫入數據 List<String> lists = FileUtils.readLines(javaUtf8File, "GBK"); List<String> tolists = new ArrayList<String>(); for (String s : lists) { String content = s; System.out.println(s); if(s.toUpperCase().contains("ENCODING=\"GBK\"")) { content = content.replaceAll("encoding=\"GBK\"", "encoding=\"UTF-8\""); content = content.replaceAll("encoding=\"gbk\"", "encoding=\"UTF-8\""); } tolists.add(content); } FileUtils.writeLines(new File(gbkFilePath), "UTF-8", tolists); } } public static void main(String[] args) throws Exception { /* * File f = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX * +"config.properties"); //按行讀取文件內容 List<String> l = FileUtils.readLines(f); * * System.out.println(FilenameUtils.getExtension(f.getName())); * * System.out.println( System.getProperty("user.dir") + "\\file\\"); */ //TestIo.printStr(); TestIo.bianma(); //FileUtils.copyFile(srcFile, destFile);拷貝文件 //FileUtils.copyDirectory(srcDir, destDir);拷貝文件夾 //FileUtils.contentEquals(file1, file2)比較文件內容 //FileUtils.readFileToString(srcFile);讀取文件內容 //FileUtils.writeStringToFile(srcFile, "xxxxxxxxxxxxxx","UTF-8"); 往文件中寫入內容 /** * 空文件過濾 */ /*public void testEmptyFileFilter() throws IOException { File dir = new File(basePath); String[] files = dir.list(EmptyFileFilter.NOT_EMPTY); for(String file:files) { System.out.println(file); } }*/ /** * 文件名稱過濾 */ /* * public void testSuffixFileFilter() throws IOException { File dir = new * File(basePath); String[] files = dir.list(new SuffixFileFilter(".txt")); * for(String file:files) { System.out.println(file); } } */ } }