本文目錄一覽:
- 1、已經是GBK編碼的Eclipse寫的項目 怎麼轉到UTF8而不亂碼
- 2、java 怎麼gbk轉碼utf-8
- 3、java文件讀取內容轉碼
- 4、如何批量的把所有文件夾中所有的擴展名為.java的文件轉為.txt文件方便閱覽!
已經是GBK編碼的Eclipse寫的項目 怎麼轉到UTF8而不亂碼
1、基本思路:一個一個打開修改效率低,這個小需求也不用自己寫程序實現。充分利用UltraEdit的強大能力。先用一個辦法,一次性全部打開工程下的java文件,再用一個辦法,一次性更改保存。一次性全部打開的方法在UE的快速打開功能中就有,但需要一點操作技巧。一次性更改保存我開始考慮用其錄製宏的方式實現,但我的UE15.1這個版本,可能有一個BUG,錄製ANSI轉UTF-8的命令失敗,只好用另一個辦法,即先將ANSI轉UTF-8的命令設置成一個快捷鍵,如CTRL+ALT+U,再錄製一個保存文件再關閉文件的宏,並將其設置快捷鍵,如CTRL+ALT+I,這樣只需要一次性全部打開java文件後,按住CTRL+ALT不放,反覆交替按U和I,即可改好,雖然不完美(因為那個錄製的BUG),但1分鐘內,也可以改好200個java文件。
2、具體操作:打開UE,先設置好ANSI轉UTF-8命令的快捷鍵,在UE的高級-配置中,打開配置選項,在查找中輸入「鍵」便可找到鍵映射的設置,雙擊然後在其命令中找到FileConvASCIIToUTF8(Unicode Editor),在按下(多個)熱鍵下的文本框中點擊滑鼠,然後按CTRL+ALT+U設置成快捷鍵。之後,一次性打開全部java文件,從UE的文件中,用快速打開菜單,在彈出的對話框中,如果顯示的默認路徑不是你的工程路徑,那麼你可以任意打開一個你工程目錄下的文本文件,這樣就讓UE記住這個路徑了,因為此處不能任選路徑,我們希望一次性打開所有文件,而不是一個一個打開,當UE記住這個路徑後,在上面的文本框中輸入*.java,在最下邊的checkbox中,勾選包括子目錄,再點擊打開,這樣就可將工程下的所有java文件一次性打開。第三步就是錄製一個宏,實現保存和關閉文件,並將其設置快捷鍵如CTRL+ALT+I,這個比較簡單,在此略過。最後一步就是按快捷鍵了。
java 怎麼gbk轉碼utf-8
方法一:
思路:先轉為Unicode,然後轉為GBK
String utf8 = new String(t.getBytes( “UTF-8”));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),”UTF-8″);
System.out.println(unicode);
String gbk = new String(unicode.getBytes(“GBK”));
System.out.println(gbk);
方法二:
public static void main(String[] args) {
String str=”字元串編碼轉換”;
try {
byte[] temp=str.getBytes(“utf-8”);//這裡寫原編碼方式
byte[] newtemp=new String(temp,”utf-8″).getBytes(“gbk”);//這裡寫轉換後的編碼方式
String newStr=new String(newtemp,”gbk”);//這裡寫轉換後的編碼方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java文件讀取內容轉碼
讀取的文件流如果是read(讀取位元組流的時候,中文就會是亂碼)方法,所以現在全都是聽過readline方式進行的讀取。舉例:
可以通過BufferedReader 流的形式進行流緩存,之後通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = “D:/test/test.txt”;
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
System.out.println(str);//原樣輸出讀到的內容
};
bre.close(),//關閉流,否則bre流會一直存在,直到程序運行結束。
除此之外,java文件讀取的時候有中文就很出現亂碼,通常獲取到的文件中通常都是「iso8859-1」格式,需要轉換為「UTF-8」格式。
如:String str = new String(str.getByte(“iso8859-1”),”UTF-8″);進行下強制轉換後在進行讀取即可。
備註:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的強制轉換不成功,依次進行這些格式的嘗試,肯定是可以解決問題的。
如何批量的把所有文件夾中所有的擴展名為.java的文件轉為.txt文件方便閱覽!
層層嵌套的話就要使用遞歸了 我給你寫一個程序吧
這種方法是把所滿足需求的文件都複製到另一個文件夾 如果要在源文件的基礎上直接重命名的話就更簡單了 用File 類的renameTo()方法 不用複製 看樓主需求了
import java.io.*;
public class Test{
public static void main(String[] arags)throws Exception{
File src = new File(“C:\\Program Files\\Java”);//這裡傳你文件夾源路徑
File tar = new File(“d:\\test”);//這裡傳所有轉換後的文件存放路徑
tar.mkdirs();//創建這個目錄
find(src,tar);
}
public static void find(File file,File tar)throws Exception{
File[] files = file.listFiles();
if(files == null)return;
for(File f : files){
if(f.isDirectory())
find(f,tar);
String name = f.getName().toLowerCase();
if(name.endsWith(“.java”)){
String str = name.replace(“.java”,”.txt”);
File newTar = new File(tar,str);
copy(f,newTar);
System.out.println(name);
}
}
}
public static void copy(File src,File tar)throws Exception{
int x = 512 10;//定義緩衝區大小為512KB
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src),x);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tar),x);
int len;
byte[] data = new byte[x];
while((len = bis.read(data,0,x)) != -1)
bos.write(data,0,len);
bos.close();
bis.close();
}
}
原創文章,作者:NGJY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134336.html