溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Java怎么批量轉(zhuǎn)換文件的編碼格式

發(fā)布時(shí)間:2021-03-01 15:37:08 來(lái)源:億速云 閱讀:190 作者:戴恩恩 欄目:編程語(yǔ)言

本文章向大家介紹使用Java怎么批量轉(zhuǎn)換文件的編碼格式的基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下。

Java的特點(diǎn)有哪些

Java的特點(diǎn)有哪些 1.Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、安全性、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

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

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

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

使用Java怎么批量轉(zhuǎn)換文件的編碼格式

二、引用依賴

這里我用了國(guó)人開(kāi)發(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]);
  //每個(gè)文件夾分個(gè)線程處理,提高點(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());
  }
 }
 }
}

以上就是小編為大家?guī)?lái)的使用Java怎么批量轉(zhuǎn)換文件的編碼格式的全部?jī)?nèi)容了,希望大家多多支持億速云!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI