`
无量
  • 浏览: 1146468 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java基础----java读写文件中防止乱码问题

阅读更多
1.按文件的编码方式utf8进行相应的解码显示和编码写入(T.java编码方式utf8)
要进行读写的文件T.java使用utf8编码方式进行编码
内容:(按utf8显示)

//你好世界杯

执行下面代码
package com.hank.comments;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {
        /**
	 * 由于windows的默认字符集是gbk,所以windows下的文件另存为utf8,代表用utf8编码方式来编码gbk字符集的文件
	 * 显示时,要显示gbk的字符集才能看到原始的内容,所以要用utf8解码方式来解码,解码后的文件时gbk字符集的文件
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		//BatchComments.java 的编码方式是utf8,在读取数据的时候也,也用utf8解码,写入时也用utf8编码后写入
		//如果文件时utf8编码的,用gbk解码会乱码,同样,utf8编码的,写入时用gbk,也是乱码
		File file = new File("D:/Workspaces/MyEclipse 10/ttttt/src/T.java");
		String characterSet = "utf8";//file用什么编码方式存的,就用什么编码方式去读和写,如这里是utf8
		
		//1.读取过程
		InputStream is = new FileInputStream(file);
		InputStreamReader isr = new InputStreamReader(is, characterSet);//文件什么编码方式存的,就用什么编码方式读取
		BufferedReader br = new BufferedReader(isr);
		String str1 = null;
		while((str1 = br.readLine()) != null) {
			System.out.println(str1);
		}
		br.close();
		isr.close();
		is.close();
		
		//2.写入过程
		FileWriter fw = new FileWriter(file, true);
		BufferedWriter bw = new BufferedWriter(fw);
		//把要写入的字符串都按照要写入文件的编码方式生成,再写入
		String str2 = new String("我爱世界杯".getBytes(characterSet), characterSet);
		System.out.println(str2);
		bw.write(str2);
		bw.flush();
		bw.close();
		fw.close();
	}
}


console端显示

//你好世界杯
我爱世界杯


写入的文件T.java显示,(按照T.java的编码方式utf8)

//你好世界杯我爱世界杯


2.不按文件的编码方式gbk进行相应的解码显示和编码写入
要进行读写的文件T.java使用的是gbk编码方式进行编码
内容:(按gbk显示)

//你好中国

执行上面的代码,不按文件的真实编码方式解码和编码写入

console端显示

//����й�
我爱世界杯

原因:乱码是因为用utf8界面gbk乱码,下面的显示正确是因为显示的java的unicode

写入的文件T.java显示,(按照T.java的编码方式gbk)

//你好中国鎴戠埍涓栫晫鏉�
原因:你好中国不乱码是因为:就是用gbk编码的,用gbk解码就不会乱码
后面是新增加的,编码方式是utf8,用gbk解码显示是乱码


所以:我可以果断判断,如果用utf8解码显示,应该原有的用gbk编码的是乱码,新增加的是正常的
如下:

//����й�我爱世界杯



注意:java读取和写入文件时,如果不指定编码解码方式,编码解码方式和你在eclipse中设置的页面编码解码方式一致,可以通过点击java文件右键--》properties--》text file encoding来查看。这个很重要baby。
可以通过下面的语句,查看,jvm默认编码解码方式,即你设置的页面属性中的编码方式
System.out.println(Charset.defaultCharset());

其次:如果是页面文件,在eclipse中设置的文件编码属性时和页面内设置的编码属性同步变动的如图:也就是说jsp等页面文件可以在页面内设定页面的编码属性


  • 大小: 249.1 KB
分享到:
评论

相关推荐

    java读写csv文件,中文乱码问题

    在Java编程中,CSV(Comma Separated Values)...通过以上步骤和知识点,你应该能够有效地解决Java读写CSV文件时遇到的中文乱码问题。在实际项目中,结合具体的错误现象,灵活应用这些知识就能顺利处理各种编码问题。

    java中文乱码问题详解--- java中文乱码问题详解

    4. **输入输出流的编码设置**:Java程序在进行文件读写或网络通信时,需要显式地指定字符集编码,以避免乱码问题的发生。 5. **浏览器与服务器间的编码一致性**:对于Web应用程序而言,客户端与服务器之间必须保持...

    java读写文件避免中文乱码.docx

    Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的编码方式来读取和写入文件。 ...

    Java中文乱码浅析及解决方案

    综上所述,解决Java中文乱码问题的关键在于确保整个程序的编码一致性,包括源代码、编译器、运行环境、文件读写、网络传输以及数据库操作等环节。通过细心配置和适当地指定编码,我们可以有效地避免乱码问题,确保...

    java 编码 UTF-8、ISO-8859-1、GBK

    4. **Java默认编码**:Java虚拟机(JVM)的默认编码可能会影响文件读写和字符串处理。可以通过 `-Dfile.encoding=UTF-8` 参数来设定JVM的默认编码。 对于JSP,由于它涉及到网页的显示,处理中文字符会更复杂。当从...

    Java关于中文乱码问题的多种解决方法

    在Java编程中,中文乱码问题是一个常见的困扰,尤其是在处理文件读写、网络传输或数据库操作时。本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中...

    Java 中文乱码问题

    在Java编程中,中文乱码问题是一个常见的困扰开发者的问题,特别是在处理输入输出或者网络通信时。这个问题涉及到字符编码的理解和正确使用。以下是对这个主题的详细解析: 首先,我们需要了解字符编码的基础知识。...

    java中文文件读写类

    最近在用java的IO包下面的RandomAccessFile类读写中文文件时遇到了乱码问题,解决不了。于是索性自己写个类,可以进行中文文件读写而不乱码。 压缩包里提供了.jar包和源代码。 ************************************...

    Java读写xml,word,xml文件(防乱码)

    ### Java读写XML、Word与TXT文件:去除乱码问题详解 #### 一、引言 在实际开发过程中,我们经常需要处理各种类型的文件,包括XML、Word文档以及普通的文本文件(如TXT)。这些文件在读写过程中经常会遇到乱码问题,...

    解决了DBF数据和表头乱码的javadbf.jar

    这个修复后的jar文件可以方便Java开发者在程序中无缝集成DBF数据的读写操作,避免了因编码问题而产生的困扰。配合提供的“说明.txt”,用户可以了解到如何正确地使用这个库,包括导入、初始化、读取和写入DBF文件等...

    java读写文件避免中文乱码.pdf

    Java 语言在读写文件时,经常会遇到中文乱码的问题,这是因为 Java 默认使用的编码方式是 ISO-8859-1,而中文字符在这个编码方式下无法正确地表示。为了避免中文乱码,需要使用正确的编码方式,例如 UTF-8。 在读取...

    彻底解决JAVA读取写入 TXT中文乱码问题 源码

    总之,解决Java读写TXT文件中文乱码问题的关键在于明确文件的编码类型并在操作文件时指定正确的编码。通过上述方法,你可以确保在处理包含中文字符的TXT文件时,不会出现乱码现象。在实际开发中,要养成良好的编码...

    java中文文件读写API及源码 V1.3

    最近在用java的IO包下面的RandomAccessFile类读写中文文件时遇到了乱码问题,解决不了。于是索性自己写个类,可以进行中文文件读写而不乱码。 压缩包里提供了.jar包和源代码。1.2版本解决了前面版本读取文件速度慢的...

    javadbf-0.4.0

    在JavaDBF-0.4.0中,开发者可以找到一套全面的API,允许他们无缝地集成DBF文件操作到他们的Java项目中。该库的主要优势在于其对字符编码的支持,特别是在读取数据时能够避免乱码问题。这通常是一个挑战,因为不同...

    java中文乱码大全

    Java中文乱码问题是编程者在开发Java应用程序时经常遇到的问题,尤其是涉及到中文字符处理时。这些问题产生的根本原因在于Java内部采用UNICODE编码,而不同的操作系统和浏览器可能支持不同的编码格式,如Windows中文...

    彻底解决中文乱码的问题

    通过以上方法,我们可以有效地防止和解决Java中的中文乱码问题。然而,每个具体问题可能需要针对性的解决方案,因此在实际工作中,了解并熟练掌握字符编码原理,结合具体情况调整代码,才能真正做到“彻底解决中文...

    Java开发中文乱码问题解决

    在Java中,默认使用的是Unicode的UTF-8编码,但有时由于文件、数据库或网络传输等原因,可能会遇到其他编码格式,从而引发乱码问题。 **乱码问题的常见场景:** 1. **读写文件**:如果文件以GBK或其他非UTF-8编码...

    Java Properties 解决中文乱码和顺序读写.docx

    Java Properties 类是Java标准库中...总之,Java Properties类是Java开发中处理配置文件的利器,通过它的方法可以方便地读取、修改和保存配置信息,尤其在处理包含中文字符的配置时,注意编码问题,确保数据的正确性。

    JAVA 乱码问题集合

    4. **文件读写乱码**:在读取或写入包含非ASCII字符的文件时,必须明确指定文件的编码。例如,使用`BufferedReader`或`FileWriter`时,可以通过`InputStreamReader`和`OutputStreamWriter`指定编码。 5. **JSP/...

Global site tag (gtag.js) - Google Analytics