Java 解决读写本地文件中文乱码的问题
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 Java 解决读写本地文件中文乱码的问题的相关资料, 需要的朋友可以参考下
Java 解决读写本地文件中文乱码的问题
前言:
在用 Java 程序进行读写含中文的 txt 文件时, 经常会出现读出或写入的内容会出现乱码原因其实很简单, 就是系统的编码和程序的编码采用了不同的编码格式通常, 假如自己不修改的话, windows 自身采用的编码格式是 gbk(而 gbk 和 gb2312 基本上是一样的编码方式), 而 IDE 中 Encode 不修改的话, 默认是 utf-8 的编码, 这就是为什么会出现乱码的原因当在 OS 下手工创建并写入的 txt 文件(gbk), 用程序直接去读(utf-8), 就会乱码为了避免可能的中文乱码问题, 最好在文件写入和读出的时候显式指定编码格式
按行读取本地文件:
- public static String readFile(String fileName) {
- String fileContent = "";
- try {
- File f = new File(fileName);
- if (f.isFile() && f.exists()) {
- InputStreamReader read = new InputStreamReader(new FileInputStream(f), "gbk");
- BufferedReader reader = new BufferedReader(read);
- String line;
- while ((line = reader.readLine()) != null) {
- fileContent += line + "\n";
- }
- read.close();
- }
- } catch(Exception e) {
- e.printStackTrace();
- }
- return fileContent;
- }
写入本地文件:
- public static void writeFile(String fileName, String fileContent) {
- try {
- File f = new File(fileName);
- if (!f.exists()) {
- f.createNewFile();
- }
- OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "gbk");
- BufferedWriter writer = new BufferedWriter(write);
- writer.write(fileContent);
- writer.close();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
来源: http://www.phperz.com/article/18/0204/358673.html