批量处理AS文件编码问题
来源:互联网 发布:mongodb 数据导出 编辑:程序博客网 时间:2024/05/22 06:52
当我们在AndroidStudio导入一个Module的时候,有可能会遇到文件编码问题,报一大堆错误如下所示:
Error:(23, 48) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
Error:(23, 49) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
Error:(23, 50) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
Error:(23, 51) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
主要是由于原Module项目是在GBK环境下开发,导入As时采用的是UTF-8所以遇到有中文的java文件会报此错误,虽然不影响编译,但是每次看着一大堆红也不舒服,所以把文件编码转为UTF-8势在必得,但是一个一个手动转费时又费神,所以便有了这篇文章。
以下代码很简单,直接输入一个路径就可以实现编码转换,直接在java工程里Run一下即可:
public class PoJie {private static String path = "C:/Users/dell1/android-studio/workspace/NetKnight-master/app/src/main/java/com/pencilbox/netknight/service";public static void main(String[] args) {changeFormat(path);System.out.println("---转换结束---");}public static void changeFormat(String strPath) {File[] files = new File(strPath).listFiles(); // 该文件目录下文件全部放入数组if (files != null) {for (int i = 0; i < files.length; i++) {String fileName = files[i].getName();if (files[i].isDirectory()) { // 判断是文件还是文件夹if(!fileName.equalsIgnoreCase("build")&&!fileName.contains("."))changeFormat(files[i].getAbsolutePath()); // 获取文件绝对路径} else if (fileName.endsWith("java")) { process(files[i],".java");}}}}private static void process(File file,String suffix){String strFileName = file.getAbsolutePath();System.out.println("---" + strFileName);String content = readTxtFile(file, "gbk");File txtFile = new File(strFileName.substring(0,strFileName.indexOf(".")) + ".txt");writeTxtFile(content, txtFile, "utf-8");file.delete();strFileName = txtFile.getAbsolutePath();txtFile.renameTo(new File(strFileName.substring(0,strFileName.lastIndexOf(".")) + suffix));}public static String readTxtFile(File file, String format) {String result = "";try {BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), format));String read = "";while ((read = bufReader.readLine()) != null) {result = result + read + "\r\n";}bufReader.close();} catch (Exception e) {e.printStackTrace();}return result;}public static boolean writeTxtFile(String content, File fileName,String format) {RandomAccessFile mm = null;boolean flag = false;FileOutputStream o = null;try {o = new FileOutputStream(fileName);o.write(content.getBytes(format));o.close();flag = true;} catch (Exception e) {e.printStackTrace();} finally {try {if (mm != null) {mm.close();}} catch (Exception e) {e.printStackTrace();}}return flag;}}转换结束后,所有GBK文件已经转为UTF-8,并且中文也不会乱码了。
阅读全文
0 0
- 批量处理AS文件编码问题
- perl文件编码处理问题
- 批量修改文件编码
- 批量更改文件编码
- 批量转换文件编码
- 批量转换文件编码
- 批量修改文件编码
- 批量更改文件编码
- 批量文件编码转换
- 批量更改文件编码
- 批量修改文件编码
- python 读写文件编码处理问题
- jshint处理GBK编码文件的问题
- 基于JChardet自动检测文件编码,批量转换文件编码,解决乱码问题
- 基于JChardet自动检测文件编码,批量转换文件编码,解决乱码问题
- 批量处理文件
- 批量处理隐藏文件
- Matlab批量处理文件
- 嵌入式系统学习——arm-qtopia添加应用
- 阿里云
- WdatePicker时间控件的使用
- 阿里云发布企业级ECS产品线,释放技术升级红利,最高降价35%
- WebRTC之WebRtcVideoEngine2模块(六)
- 批量处理AS文件编码问题
- mongodb与mysql命令对比
- 定时任务中常用的cron表达式
- 活动中使用Menu
- java学习初探5之static关键字和单例模式初步
- 理解音视频 PTS 和 DTS
- 多线程为什么可以提高效率
- hdu6125 Free from square 状压+分组
- 用命令行管理aws s3