杯具呀..eclipse的默认编码是GBK,俺作为新鸟,直接用了GBK,于是乎被责成把所有class换成utf-8编码...
于是乎,自然而然想到了俺的FileOperator Class,它有两个读写文件的方法,一个读,一个写.当然还是很智能滴可以指定编码滴...恩,好说,可以把项目底下所有的java class以gbk编码读出来,then用utf-8血淋淋地写回去...sai...
First,我先写遍历项目文件夹的方法吧...于是乎,它诞生鸟——
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Change {
public static void main(String[] args) {
getAllFiles(new File("D:\\EclipseProjects\\aaaaaaaaaaaa"));
}
// 遍历一个文件夹中的所有文件
public static void getAllFiles(File folder) {
if (!folder.isDirectory())
return;
List<File> files = new ArrayList<File>();
getFile(files, folder);
for (File f : files) {
String context = FileOperater.readText(f, "gbk");
FileOperater.writeText(f, context, "utf-8");
}
}
private static void getFile(List<File> list, File folder) {
File[] files = folder.listFiles();
for (File f : files) {
if (f.isDirectory()) {
getFile(list, f);// 若目录,则迭代
} else {
if (f.getName().endsWith(".java")) {
list.add(f);
}
}
}
}
}
我已经想写这个东西很久鸟...可以加到FileOperator里去鸟..But you see 那个 endsWith(".java")多么幼稚呀...怎么都该写个正则表达式是吧,But 以我之智商还是等看本正则式傻瓜书再说吧..
Okay,下一个,套用file operator吧——
public static String readText(File file, String encoding) {
String content = "";
try {
InputStreamReader pr = new InputStreamReader(new FileInputStream(
file), encoding);
BufferedReader reader = new BufferedReader(pr);
String temp = null;
while ((temp = reader.readLine()) != null) {
content += temp;
}
reader.close();// 关闭
} catch (Exception ex) {
Logger.getLogger(FileOperater.class.getName()).log(Level.SEVERE,
null, ex);
}
return content;
}
恩,这只是个读取文件内容的方法,encoding当然采用gbk,说实话,我得到内容...哇塞,它居然忽略了所有的换行...sai...真是一坨啊...
Then, 只更新这一句吧, content += (temp + "\n");
好了,okay,但是,"\n"这个东西真恐怕被ubuntu用户骂呀...
于是乎,另一个readText方法诞生鸟——
public static String readText(File file, String encoding) {
String content = "";
try {
InputStreamReader ir = new InputStreamReader(new FileInputStream(
file), encoding);
int i = -1;
while ((i = ir.read()) != -1) {
content += (char) i;
}
ir.close();
} catch (Exception ex) {
Logger.getLogger(FileOperater.class.getName()).log(Level.SEVERE,
null, ex);
}
return content;
}
多NB呀...尤其是这样的写法
int i = -1;
while ((i = ir.read()) != -1) {
content += (char) i;
}
你可知,俺之前是这么写的——
while(ir.read() != -1){
content += (char)ir.read();
}
可是,读取内容为"0123456789"时,却得到"13579"...这不是隔一个取一个么,"真智能"....
可见,NB写法好处多呀...千万表有要求写法简单明了的fandong(居然敏感词)组织鸟...
okay,这能满足你了吗,linuxer?...
Last,write吧——
public static void writeText(File file, String text, String encoding) {
try {
// BufferedWriter writer = new BufferedWriter(new
// java.io.OutputStreamWriter(new FileOutputStream(file)));
// writer.write(text);//内容在这里
// writer.close();//关闭
OutputStreamWriter pw = new OutputStreamWriter(
new FileOutputStream(file), encoding);
pw.append(text);
pw.close();
} catch (Exception ex) {
Logger.getLogger(FileOperater.class.getName()).log(Level.SEVERE,
null, ex);
}
}
可表用注释里那个木encoding的方法呦...
That's all, thank you .....
分享到:
相关推荐
在Java编程语言中,修改文件编码是一项常见的任务,特别是在处理不同源代码或数据文件时。本文将深入探讨如何使用Java来实现这一功能,主要关注以下几个关键知识点: 1. **字符编码的理解**:字符编码是将字符与二...
经常碰到文件编码格式不一致导致一堆问题,想在linux上批量修改文件夹下的文件编码,操作太麻烦,花了一点时间写了个java程序来操作,用着非常方便,详情如下: 在FileEncodeTranslate类中,修改一下源文件夹路径,...
本文将详细介绍`org.dtools.javaini-v1.1.0.jar`,这是一个专为Java设计的,用来处理INI配置文件的库,特别之处在于它经过修改后,增加了对UTF-8编码的支持。 原始的`org.dtools.javaini`库最初设计时仅支持ASCII...
"php php3 aspx asp html sql java文件编码批量转换软件"是一款工具,专门设计用于解决这个问题,它可以批量转换这些不同类型的文件,确保它们的编码一致性,从而避免出现乱码和兼容性问题。 1. **PHP编码**:PHP是...
这一步骤可能涉及到设置文件过滤条件,例如只修改.txt或.java文件。一旦找到目标文件,用户只需点击“一键修改”,软件便会自动将这些文件的编码格式转换为预设的目标编码,如UTF-8无BOM格式。 批量修改过程中,...
本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java来解决由于不同编码格式引起的兼容性问题。 首先,我们需要理解什么是文件编码。文件编码是指在计算机中存储和处理文本的方式,常见的有GBK和UTF-8...
本文将深入探讨“文件编码格式批量转换工具”,重点讲解如何将文件从一种编码格式转换为UTF-8编码,以及涉及的字符集和Java编程语言的相关知识。 标题“文件编码格式批量转换工具.rar”表明这是一个可以处理多个...
在Java中,.properties文件是一种特殊的键值对格式,用于存储配置数据。它们通常用于保存应用程序的设置,如数据库连接字符串、日志级别或用户界面的语言设置。这种文件的语法简洁,易于读写,每个键值对由等号分隔...
2. **代码格式化**:自动格式化代码,使其符合特定的编码规范。 3. **代码重构**:自动进行大规模的代码重构,如重命名变量、提取方法等。 4. **自动化生成代码**:根据需求自动生成 Java 代码,比如创建模板类或...
Base64.java文件可能是一个自定义实现,它提供了对Base64编码和解码的功能。 在Java中,`java.util.Base64`类提供了三种不同的编码器和解码器:`Encoder`、`Decoder`以及`Get`和`Set`方法。`Encoder`用于将字节数据...
修改xml文件的编码格式:GB2312格式修改为UTF-8
每个JAVA文件的开头通常会包含版权声明和版本信息,这有助于追踪代码的变更历史。版权信息包括作者、公司或组织的权益声明,而版本信息则记录了文件的不同迭代版本,如版本号和修改日期,方便追踪修改记录。 4. ...
在给定的信息中,我们可以看到涉及的文件是与加密和解密相关的Java源代码。"GenerateKey.java"、"EncryptClasses.java"以及"Util"、"DecryptStart"这些标签暗示了这是一个关于Java加密和解密操作的项目。下面将详细...
5. 在右侧的“Text file encoding”(文本文件编码)下拉框中,你可以看到各种可用的编码格式。选择你希望设置为默认的编码格式,例如“Other” -> “UTF-8”。 6. 确认设置后,点击“Apply”(应用)保存更改,再...
4. **动态切换语言**:对于具有多语言切换功能的应用,`Translater.java` 可能会提供一个接口,允许用户在运行时更改应用的语言设置,并即时更新显示的文本。 5. **错误处理**:当请求的key在资源文件中不存在时,`...
org.dtools.javaini-v1.1.10.jar...官网org.dtools.javaini的jar只支持ACSSII编码,ini文件中文读取出来乱码。该jar本人修改为默认UTF-8,也可以通过IniFileWriter.ENCODING = "GBK";修改编码,良好支持不同字符显示。
标题中的“文件编码转换工具java”表明这是一款基于Java编程语言开发的应用,主要功能是进行文件编码的转换。在IT领域,文件编码是至关重要的,不同的编码格式适用于不同的语言和平台,例如ASCII、UTF-8、GBK等。这...
华为JAVA编码规范.pdf 华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则...
这篇博客“java修改Properties文件,让输出格式与输入格式保持不变”就探讨了如何解决这个问题。 首先,我们需要理解Java Properties类的默认行为。Properties类在加载和保存文件时,会按照一定的规则进行格式化,如...