本文目录一览:
- 已经是GBK编码的Eclipse写的项目 怎么转到UTF8而不乱码
- java 怎么gbk转码utf-8
- java文件读取内容转码
- 如何批量的把所有文件夹中所有的扩展名为.java的文件转为.txt文件方便阅览!
已经是GBK编码的Eclipse写的项目 怎么转到UTF8而不乱码
- 基本思路:一个一个打开修改效率低,这个小需求也不用自己写程序实现。充分利用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文件。
- 具体操作:打开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流会一直存在,直到程序运行结束。
} catch (Exception e) {
e.printStackTrace();
}
除此之外,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 * 1024; // 定义缓冲区大小为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();
}
}