最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java批量轉(zhuǎn)換文件編碼格式的實(shí)現(xiàn)方法及實(shí)例代碼

 更新時間:2019年04月25日 09:34:33   作者:SunEn  
這篇文章主要介紹了Java實(shí)現(xiàn) 批量轉(zhuǎn)換文件編碼格式的方法及實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

一、場景說明

  不知道大家有沒有遇到過之前項(xiàng)目是GBK,現(xiàn)在需要全部換成UTF-8的情況.反正我是遇到了.

  eclipse可以改變項(xiàng)目的編碼格式,但是文件如果直接轉(zhuǎn)換的話里面的中文就會全部亂碼,需要先復(fù)制文件內(nèi)容然后改變文件格式,再全選 粘貼(可能有其它更好的方法我不知道),

  這樣的話一個項(xiàng)目要全部一個一個文件改,想想都難受.作為一個程序猿,就寫了個簡單的方法讓程序處理.

  思路:方法很簡單,遍歷項(xiàng)目文件夾-篩選java擴(kuò)展文件-把文件編碼從GBK轉(zhuǎn)換成UTF-8.

  注意:編碼格式一定不要弄錯,建議轉(zhuǎn)換前備份.不然你會后悔的,我為了偷懶測試了兩個工程后,就把整個工作空間轉(zhuǎn)換了,然后有的項(xiàng)目原本就是UTF-8,執(zhí)行完成后就亂碼了😂.

補(bǔ)救辦法是:把項(xiàng)目從UTF-8轉(zhuǎn)換成GBK,不亂碼了,但是有后遺癥,雖然大部分都救回來了,但是不知道某個字符就變成?了.

二、引用依賴

這里我用了國人開發(fā)的超好用的java工具包hutool,官網(wǎng) https://hutool.cn/ 類似于lang3包,相比lang3,hutool功能更多,中文注解,中文注解,中文注解.      

<dependency>
  <groupId>cn.hutool</groupId>
  <artifactId>hutool-all</artifactId>
  <version>4.5.6</version>
 </dependency>

三、方法實(shí)現(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");
 }
 /**
 * 轉(zhuǎn)換文件編碼格式
 * @param path 需要轉(zhuǎn)換的文件或文件夾路徑
 * @param fromCharset 原編碼格式
 * @param toCharset 目標(biāo)編碼格式
 * @param expansion 需要轉(zhuǎn)換的文件擴(kuò)展名,如需全部轉(zhuǎn)換則傳 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]);
  //每個文件夾分個線程處理,提高點(diǎn)兒效率
  new Thread(new Runnable() {
   @Override
   public void run() {
   convertCharset(canonicalPath,fromCharset,toCharset,expansion);
   }
  }).start();
  }else {
  FileUtil.convertCharset(listFiles[i], fromCharset, toCharset);
  Console.log("轉(zhuǎn)換完成文件名:{}",listFiles[i].getName());
  }
 }
 }
}

總結(jié)

以上所述是小編給大家介紹的Java實(shí)現(xiàn) 批量轉(zhuǎn)換文件編碼格式的方法及實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Java開發(fā)中為什么要使用單例模式詳解

    Java開發(fā)中為什么要使用單例模式詳解

    單例對于大家來說并不陌生,但是在什么時候用單例呢?為什么要用呢?本文就帶大家了解一下為什么要使用單例,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • 多jdk環(huán)境下指定springboot外部配置文件詳解

    多jdk環(huán)境下指定springboot外部配置文件詳解

    這篇文章主要為大家介紹了多jdk環(huán)境下指定springboot外部配置文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • java中對Redis的緩存進(jìn)行操作的示例代碼

    java中對Redis的緩存進(jìn)行操作的示例代碼

    本篇文章主要介紹了java中對Redis的緩存進(jìn)行操作的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • 解決異常處理問題:getReader()?has?already?been?called?for?this

    解決異常處理問題:getReader()?has?already?been?called?for?this

    這篇文章主要介紹了解決異常處理:getReader()?has?already?been?called?for?this問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • springboot Quartz動態(tài)修改cron表達(dá)式的方法

    springboot Quartz動態(tài)修改cron表達(dá)式的方法

    這篇文章主要介紹了springboot Quartz動態(tài)修改cron表達(dá)式的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • JDBC如何通過SSL方式連接MySQL

    JDBC如何通過SSL方式連接MySQL

    文章介紹了如何配置MySQL以支持SSL連接,并通過JDBC進(jìn)行安全連接,主要內(nèi)容包括查看MySQL SSL支持、創(chuàng)建SSL連接用戶、配置用戶是否強(qiáng)制使用SSL、JDBC配置導(dǎo)入證書以及使用Go編寫一個簡單的HTTP文件服務(wù)器來提供SSL證書
    2025-02-02
  • Java畢業(yè)設(shè)計實(shí)戰(zhàn)之二手書商城系統(tǒng)的實(shí)現(xiàn)

    Java畢業(yè)設(shè)計實(shí)戰(zhàn)之二手書商城系統(tǒng)的實(shí)現(xiàn)

    這是一個使用了java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP開發(fā)的二手書商城系統(tǒng),是一個畢業(yè)設(shè)計的實(shí)戰(zhàn)練習(xí),具有在線書城該有的所有功能,感興趣的朋友快來看看吧
    2022-01-01
  • 優(yōu)雅地在Java 8中處理異常的方法詳解

    優(yōu)雅地在Java 8中處理異常的方法詳解

    異常處理是我們在日常開發(fā)中經(jīng)常會遇到的一種需求,下面這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅地在Java 8中處理異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們來一起看看吧
    2019-01-01
  • Java中的參數(shù)傳遞詳細(xì)介紹

    Java中的參數(shù)傳遞詳細(xì)介紹

    大家好,本篇文章主要講的是Java中的參數(shù)傳遞詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Java?List集合取交集的8種不同實(shí)現(xiàn)方式總結(jié)

    Java?List集合取交集的8種不同實(shí)現(xiàn)方式總結(jié)

    工作中經(jīng)常遇到需要取兩個集合之間的交集、差集情況,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java?List集合取交集的8種不同實(shí)現(xiàn)方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04

最新評論

沙坪坝区| 黄大仙区| 雷波县| 安化县| 漾濞| 宁蒗| 佛山市| 修文县| 申扎县| 洛川县| 托里县| 醴陵市| 三门县| 玉环县| 镇远县| 天门市| 阳城县| 广昌县| SHOW| 德昌县| 南昌县| 霸州市| 洛扎县| 绍兴县| 弥勒县| 视频| 桦南县| 利津县| 平昌县| 沾益县| 周至县| 浪卡子县| 黄浦区| 芜湖县| 梧州市| 南江县| 吉首市| 潍坊市| 富裕县| 屏东县| 玛纳斯县|