Java批量轉換文件編碼格式的實現(xiàn)方法及實例代碼
一、場景說明
不知道大家有沒有遇到過之前項目是GBK,現(xiàn)在需要全部換成UTF-8的情況.反正我是遇到了.
eclipse可以改變項目的編碼格式,但是文件如果直接轉換的話里面的中文就會全部亂碼,需要先復制文件內容然后改變文件格式,再全選 粘貼(可能有其它更好的方法我不知道),
這樣的話一個項目要全部一個一個文件改,想想都難受.作為一個程序猿,就寫了個簡單的方法讓程序處理.
思路:方法很簡單,遍歷項目文件夾-篩選java擴展文件-把文件編碼從GBK轉換成UTF-8.
注意:編碼格式一定不要弄錯,建議轉換前備份.不然你會后悔的,我為了偷懶測試了兩個工程后,就把整個工作空間轉換了,然后有的項目原本就是UTF-8,執(zhí)行完成后就亂碼了😂.
補救辦法是:把項目從UTF-8轉換成GBK,不亂碼了,但是有后遺癥,雖然大部分都救回來了,但是不知道某個字符就變成?了.
二、引用依賴
這里我用了國人開發(fā)的超好用的java工具包hutool,官網 https://hutool.cn/ 類似于lang3包,相比lang3,hutool功能更多,中文注解,中文注解,中文注解.
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.5.6</version> </dependency>
三、方法實現(xiàn)
import java.io.File; import java.io.FileFilter; import java.nio.charset.Charset; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Console; import cn.hutool.core.util.StrUtil; public class ConcertEncodeing { public static void main(String[] args) { convertCharset("D:\\workspaces\\workspaceOxygen\\ceshi",Charset.forName("GBK"),Charset.forName("UTF-8"),"java"); } /** * 轉換文件編碼格式 * @param path 需要轉換的文件或文件夾路徑 * @param fromCharset 原編碼格式 * @param toCharset 目標編碼格式 * @param expansion 需要轉換的文件擴展名,如需全部轉換則傳 null */ private static void convertCharset(String path,Charset fromCharset,Charset toCharset,String expansion ) { if (StrUtil.isBlank(path)) { return; } File file = FileUtil.file(path); File[] listFiles = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (StrUtil.isBlank(expansion)) { return true; } if (FileUtil.isDirectory(pathname)||FileUtil.extName(pathname).equals("java")) { return true; } return false; } }); for (int i = 0; i < listFiles.length; i++) { if (listFiles[i].isDirectory()) { String canonicalPath = FileUtil.getCanonicalPath(listFiles[i]); //每個文件夾分個線程處理,提高點兒效率 new Thread(new Runnable() { @Override public void run() { convertCharset(canonicalPath,fromCharset,toCharset,expansion); } }).start(); }else { FileUtil.convertCharset(listFiles[i], fromCharset, toCharset); Console.log("轉換完成文件名:{}",listFiles[i].getName()); } } } }
總結
以上所述是小編給大家介紹的Java實現(xiàn) 批量轉換文件編碼格式的方法及實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Mybatis配置之<typeAliases>別名配置元素解析
這篇文章主要介紹了Mybatis配置之<typeAliases>別名配置元素解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Java元素排序Comparable與Comparator的區(qū)別
這篇文章主要介紹了Java元素排序Comparable與Comparator的區(qū)別,二者都是頂級的接口,但擁有的方法和用法是不同的,下面我們分別來看看具體是怎樣的區(qū)別吧2022-05-05SpringBoot結合Redis配置工具類實現(xiàn)動態(tài)切換庫
本文主要介紹了SpringBoot結合Redis配置工具類實現(xiàn)動態(tài)切換庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08教你用java實現(xiàn)學生成績管理系統(tǒng)(附詳細代碼)
教學管理系統(tǒng)很適合初學者對于所學語言的練習,下面這篇文章主要給大家介紹了關于如何用java實現(xiàn)學生成績管理系統(tǒng)的相關資料,文中給出了詳細的實例代碼,需要的朋友可以參考下2023-06-06