`
snoopy7713
  • 浏览: 1148982 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

Java读取中文字符的文件

    博客分类:
  • java
阅读更多

    众所周知,java的中文问题一直是一个老大难的问题,这个现象可以在csdn中java论坛里关于中文乱码的提问率就可以了解到,甚至软件巨人IBM专 门开辟了一个解决中文问题的专区,作为一个俗人(一直梦想希望想金凯利那样成为一个“冒牌天神”,只是一直没有成功,也许是因为上帝不照顾中国吧),我也 为同意的问题困扰,好在今天解决了。

    随着我对.net平台的彻底放弃(只是生活所迫,毕竟我还要生活),将原有的资源转到Java平台上来是我当前的一个重要任务之一,说到这里,不得不承认.net对中文问题解决的很好,虽然偶尔也会出现乱码。

通过打开文件是指定文件编码的方法把这个问题轻松的解决了。

  最后总结一下:java要读取数据流的时候一定要指定数据流的编码方式(至少读取String流的时候要这么作。

如果使用UTF-8读取出来是乱码,用GBK 或者 GB2312试试,一定会成功的。

	/**
	 * 读取文件内容
	 * 
	 * @param filePathName
	 *            文件名称
	 * @return 文件内容
	 */
	public static byte[] readFileByBytes(String filePathName) {
		StringBuffer sb = new StringBuffer("");
		InputStreamReader in = null;
		try {
			String fileFullPathAndName = PathUtil
					.getKnowbaseFilePath(filePathName);
			File file = new File(fileFullPathAndName);
			BufferedReader reader = new BufferedReader(in);
			if (file.exists()) {
				in = new InputStreamReader(new FileInputStream(file), "UTF-8");
				String line;
				while ((line = reader.readLine()) != null) {
					sb.append(line);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException ex) {
					ex.printStackTrace();
				}
			}
		}

		return sb.toString().getBytes();
	}

     这里,Java的读文件和写文件都是基于字符流的,主要用到下面的几个类:
1、FileReader----读取字符流
2、FileWriter----写入字符流
3、BufferedReader----缓冲指定文件的输入
该类的方法有:
void close() 
        关闭该流。
 void mark(int readAheadLimit) 
        标记流中的当前位置。
 boolean markSupported() 
        判断此流是否支持 mark() 操作(它一定支持) int read() 
        读取单个字符。
 int read(char[] cbuf, int off, int len) 
        将字符读入数组的某一部分。
 String readLine() 
        读取一个文本行。
 boolean ready() 
        判断此流是否已准备好被读取。
 void reset() 
        将流重置为最新的标记。
 long skip(long n) 
        跳过字符。
4、BufferedWriter----将缓冲对文件的输出
该类的方法有:
void close() 
        关闭该流。
 void flush() 
        刷新该流的缓冲。
 void newLine() 
        写入一个行分隔符。
 void write(char[] cbuf, int off, int len) 
        写入字符数组的某一部分。
 void write(int c) 
        写入单个字符。
 void write(String s, int off, int len) 
        写入字符串的某一部分。

分享到:
评论

相关推荐

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

    java 读取文件 文件读取操作

    本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取文件内容** Java中`java.io.FileInputStream`类提供了按字节读取文件的功能。这种方法适用于读取二...

    java如何读取文件

    `FileReader`用于读取字符文件,而`BufferedReader`则在`FileReader`的基础上添加了缓冲功能,提高读取效率。 ### 示例代码详解 #### 1. 导入必要包 首先,代码导入了`java.io`包下的几个类:`BufferedReader`、`...

    java读取txt文件内容(java快速读取,程序已调试通)

    java读取txt文件,可以以文件路径构造这个流,:FileInputStream fin = new FileInputStream("d:/test.txt"); 然后使用这个流直接读取到文件,再使用reader构造BufferedReader,按行读取一整行的文本,作为字符串返回...

    java读取TXT文件入库

    以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。

    java 按顺序读取文件

    `FileReader`主要用于读取字符流,而`BufferedReader`则通过缓冲区提高读取效率。在按顺序读取文件时,通常我们会先创建一个`FileReader`对象,然后将其传递给`BufferedReader`,以便高效地逐行读取文件内容。 以下...

    用java读取ini文件(支持中文)

    本篇我们将深入探讨如何使用Java有效地读取包含中文字符的INI文件,并通过提供的`IniReader.java`源代码进行实例解析。 首先,我们要了解INI文件的基本结构。INI文件由一系列的节(Section)组成,每个节下面可以有...

    java读取csv例子

    Java读取CSV例子 Java读取CSV例子是通过使用javacsv-2.0.jar包来实现的。javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来...

    java读取shp文件代码

    ### Java读取SHP文件及DBF属性的关键技术解析 #### 概述 在地理信息系统(GIS)领域,Shapefile是一种常见的矢量数据格式,用于存储地理位置信息及相关属性数据。一个完整的Shapefile由多个文件组成,包括.shp、....

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

    2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...

    STL.zip_java读取stl_stl读取 java

    这个"STL.zip_java读取stl_stl读取_java"的主题涉及到使用Java编程语言来处理ASCII格式的STL文件。在Java中读取STL文件可以帮助我们解析其内部的几何数据,例如三角面片的顶点坐标,从而进行3D模型的构建和分析。 ...

    java读取项目中的文件(src目录下)

    在Java编程中,读取项目中的文件,特别是位于`src`目录下的文件,是一个常见的需求。这涉及到对项目结构的理解和使用Java I/O流的知识。`src`目录通常包含源代码文件,而运行时,这些文件会被编译并放置到类路径...

    java读取文件中文乱码

    在Java编程中,读取包含中文字符的...通过理解和应用这些知识点,你可以有效地解决Java读取文件时出现的中文乱码问题。在实际开发中,对文件编码的理解和处理是至关重要的,能够确保程序正确地处理各种语言和字符集。

    java读取二进制文件

    ### Java读取二进制文件知识点详解 #### 一、二进制文件基本概念 在计算机科学中,二进制文件是由一系列字节组成的文件,这些字节可以表示任何类型的数据,包括文本、图像、音频等。二进制文件与文本文件的主要区别...

    Java读取Ini文件

    在Java中,没有内置的库来直接处理Ini文件,但我们可以利用Java的I/O流和字符串处理功能来实现读取Ini文件的功能。下面将详细介绍如何在Java中读取Ini文件。 首先,我们需要了解Ini文件的基本结构。Ini文件由多个节...

    java读取数据库表中内容转存sql文件,然后解析执行此文件

    在Java编程中,读取数据库表中的内容并将其转换为SQL文件,然后解析并执行这个文件,是一项常见的数据处理任务。这项操作可能涉及到数据库连接、数据查询、文件操作以及SQL语句的构建与执行。以下将详细介绍这个过程...

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    java 读取properties文件代码

    读取Properties文件是Java开发中的常见操作,特别是在需要根据配置文件动态改变程序行为的时候。下面我们将详细探讨如何在Java中读取Properties文件。 首先,你需要确保你的项目中包含了一个Properties文件,比如`...

    java实现读取html网页文件

    在Java编程语言中,读取HTML网页文件是一个常见的任务,特别是在网络爬虫、数据分析或集成网页内容到数据库等场景下。下面将详细讲解如何实现这一功能,并探讨相关的知识点。 首先,要读取HTML文件,我们需要使用...

Global site tag (gtag.js) - Google Analytics