`
keating
  • 浏览: 169984 次
  • 性别: Icon_minigender_1
  • 来自: weihai
社区版块
存档分类
最新评论

更改 .java 文件的编码格式

    博客分类:
  • Java
阅读更多
杯具呀..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 .....
分享到:
评论
1 楼 abeautifulday 2013-07-08  
你也太happy了。

相关推荐

    用java修改文件的编码

    在Java编程语言中,修改文件编码是一项常见的任务,特别是在处理不同源代码或数据文件时。本文将深入探讨如何使用Java来实现这一功能,主要关注以下几个关键知识点: 1. **字符编码的理解**:字符编码是将字符与二...

    java批量修改指定文件夹下多级文件编码格式

    经常碰到文件编码格式不一致导致一堆问题,想在linux上批量修改文件夹下的文件编码,操作太麻烦,花了一点时间写了个java程序来操作,用着非常方便,详情如下: 在FileEncodeTranslate类中,修改一下源文件夹路径,...

    org.dtools.javaini-v1.1.0.jar

    本文将详细介绍`org.dtools.javaini-v1.1.0.jar`,这是一个专为Java设计的,用来处理INI配置文件的库,特别之处在于它经过修改后,增加了对UTF-8编码的支持。 原始的`org.dtools.javaini`库最初设计时仅支持ASCII...

    php php3 aspx asp html sql java文件编码批量转换软件

    "php php3 aspx asp html sql java文件编码批量转换软件"是一款工具,专门设计用于解决这个问题,它可以批量转换这些不同类型的文件,确保它们的编码一致性,从而避免出现乱码和兼容性问题。 1. **PHP编码**:PHP是...

    批量修改文件编码软件

    这一步骤可能涉及到设置文件过滤条件,例如只修改.txt或.java文件。一旦找到目标文件,用户只需点击“一键修改”,软件便会自动将这些文件的编码格式转换为预设的目标编码,如UTF-8无BOM格式。 批量修改过程中,...

    java文件的编码转换

    本文将深入探讨“Java文件的编码转换”这一主题,以及如何利用Java来解决由于不同编码格式引起的兼容性问题。 首先,我们需要理解什么是文件编码。文件编码是指在计算机中存储和处理文本的方式,常见的有GBK和UTF-8...

    文件编码格式批量转换工具.rar

    本文将深入探讨“文件编码格式批量转换工具”,重点讲解如何将文件从一种编码格式转换为UTF-8编码,以及涉及的字符集和Java编程语言的相关知识。 标题“文件编码格式批量转换工具.rar”表明这是一个可以处理多个...

    jp.gr.java_conf.ussiy.app.propedit_5.3.3

    在Java中,.properties文件是一种特殊的键值对格式,用于存储配置数据。它们通常用于保存应用程序的设置,如数据库连接字符串、日志级别或用户界面的语言设置。这种文件的语法简洁,易于读写,每个键值对由等号分隔...

    javaParser 包 javaparser-core-3.6.16.jar

    2. **代码格式化**:自动格式化代码,使其符合特定的编码规范。 3. **代码重构**:自动进行大规模的代码重构,如重命名变量、提取方法等。 4. **自动化生成代码**:根据需求自动生成 Java 代码,比如创建模板类或...

    Base64.java加密解密类文件

    Base64.java文件可能是一个自定义实现,它提供了对Base64编码和解码的功能。 在Java中,`java.util.Base64`类提供了三种不同的编码器和解码器:`Encoder`、`Decoder`以及`Get`和`Set`方法。`Encoder`用于将字节数据...

    修改xml文件的编码格式:GB2312格式修改为UTF-8

    修改xml文件的编码格式:GB2312格式修改为UTF-8

    JAVA编码规范.doc

    每个JAVA文件的开头通常会包含版权声明和版本信息,这有助于追踪代码的变更历史。版权信息包括作者、公司或组织的权益声明,而版本信息则记录了文件的不同迭代版本,如版本号和修改日期,方便追踪修改记录。 4. ...

    GenerateKey.java EncryptClasses.java

    在给定的信息中,我们可以看到涉及的文件是与加密和解密相关的Java源代码。"GenerateKey.java"、"EncryptClasses.java"以及"Util"、"DecryptStart"这些标签暗示了这是一个关于Java加密和解密操作的项目。下面将详细...

    eclipse 里设置文件的默认编码格式

    5. 在右侧的“Text file encoding”(文本文件编码)下拉框中,你可以看到各种可用的编码格式。选择你希望设置为默认的编码格式,例如“Other” -&gt; “UTF-8”。 6. 确认设置后,点击“Apply”(应用)保存更改,再...

    国际化工具 Translater.java

    4. **动态切换语言**:对于具有多语言切换功能的应用,`Translater.java` 可能会提供一个接口,允许用户在运行时更改应用的语言设置,并即时更新显示的文本。 5. **错误处理**:当请求的key在资源文件中不存在时,`...

    org.dtools.javaini-v1.1.10.jar

    org.dtools.javaini-v1.1.10.jar...官网org.dtools.javaini的jar只支持ACSSII编码,ini文件中文读取出来乱码。该jar本人修改为默认UTF-8,也可以通过IniFileWriter.ENCODING = "GBK";修改编码,良好支持不同字符显示。

    文件编码转换工具java

    标题中的“文件编码转换工具java”表明这是一款基于Java编程语言开发的应用,主要功能是进行文件编码的转换。在IT领域,文件编码是至关重要的,不同的编码格式适用于不同的语言和平台,例如ASCII、UTF-8、GBK等。这...

    华为JAVA编码规范.pdf

    华为JAVA编码规范.pdf 华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则...

    java修改Properties文件,让输出格式与输入格式保持不变

    这篇博客“java修改Properties文件,让输出格式与输入格式保持不变”就探讨了如何解决这个问题。 首先,我们需要理解Java Properties类的默认行为。Properties类在加载和保存文件时,会按照一定的规则进行格式化,如...

Global site tag (gtag.js) - Google Analytics