java文件批量转码,Java批量上传文件

发布时间:2022-11-17

本文目录一览:

  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流会一直存在,直到程序运行结束。
} 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();
    }
}