`
流浪鱼
  • 浏览: 1698121 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FileReader和InputStreamReader使用

    博客分类:
  • java
 
阅读更多

FileReader 用于读取字符 流。要读取原始字节 流,请考虑使用 FileInputStream

 

FileReader 类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

用FileReader类读取带汉字的文本文件时会出现乱码 ,即使文件和系统都统一采用UTF-8都会出现此种乱码,对于这种情况我们就可以采用 InputStreamReader来读取,并指定编码格式

 

FileReader类使用

/**
	 * 读取xml文件转换为字符串
	 * @param filePath  文件路径
	 * @return
	 */
	private String getXMLString(String filePath) {
		int ch = 0;
		StringBuffer buf = new StringBuffer();
		try {
			FileReader reader = new FileReader(filePath);  //中文为乱码
			while ((ch = reader.read()) != -1) {
				buf.append((char) ch);
			}
			reader.close();
			return buf.toString();
		} catch (Exception e) {
			throw new RalasafeException(e);
		}
	}

 InputStreamReader类使用

/**
	 * 读取xml文件转换为字符串
	 * @param filePath  文件路径
	 * @return
	 */
	private String getXMLString(String filePath) {
		int ch = 0;
		StringBuffer buf = new StringBuffer();
		try {
			InputStreamReader reader = new InputStreamReader(new FileInputStream(new File(filePath)),"UTF-8");
			while ((ch = reader.read()) != -1) {
				buf.append((char) ch);
			}
			reader.close();
			return buf.toString();
		} catch (Exception e) {
			throw new RalasafeException(e);
		}
	}

 解决乱码问题

 

分享到:
评论

相关推荐

    InputStreamReader 和FileReader的区别及InputStream和Reader的区别

    InputStreamReader 和FileReader都是Java中用于读取输入流的类,但它们在处理数据的方式上存在显著差异。InputStreamReader属于Reader类的子类,主要用于处理字符流,它充当字节流(如InputStream)与字符流之间的...

    FileReader文件阅读器代码

    如果需要指定特定编码,可以考虑使用`InputStreamReader`,它接受一个`InputStream`和一个字符集编码作为参数。 - 性能优化:为了防止数据丢失,务必在完成文件操作后调用`close()`方法关闭流。 - 错误处理:务必...

    Java文件读写操作函数实现

    * 操作可能开销很高的 Reader(如 FileReader和 InputStreamReader)。 * BufferedReader流能够读取文本行,通过向BufferedReader传递一个Reader对象 * ,来创建一个BufferedReader对象,之所以这样做是因为...

    java io 类 小结 代码

    代码直接使用 InputStream OutputStream Reader Writer FileInputStream FileOutputStream FileReader FileWriter InputStreamReader OutputStreamWriter BufferedReader BufferedWriter ...

    Java 中的FileReader和FileWriter源码分析_动力节点Java学院整理

    Java中的`FileReader`和`FileWriter`是用于读写文件的基本类,它们分别继承自`InputStreamReader`和`OutputStreamWriter`。这两个类是Java IO流模型中的字符流(Character Stream)部分,处理数据的方式是以字符为...

    fileReader

    以下是一个简单的使用`FileReader`和`BufferedReader`读取文件内容的例子: ```java try { FileReader fr = new FileReader("test.txt"); BufferedReader br = new BufferedReader(fr); String line; while ...

    InputStreamReader和BufferedReader用法及实例讲解

    InputStreamReader使用指定的字符编码(如果提供)或系统默认的字符编码来解码字节。 1. 类定义与继承关系: ```java public class InputStreamReader extends Reader ``` 2. 构造方法: - `InputStreamReader...

    java文件读写宣贯.pdf

    本文将深入探讨Java如何读写文本文件,重点介绍Reader、Writer、InputStreamReader、FileReader、BufferedReader以及Writer的相关类和方法。 1. **Reader 和 Writer 类**: Java最初并不直接支持文本文件操作,...

    Java 输入输出流

    3. **字符输入流(Input Character Stream)**:专用于读取字符数据,如FileReader、InputStreamReader和BufferedReader。字符流内部会自动处理字符编码。 4. **字符输出流(Output Character Stream)**:用于写入...

    Java操作文本文件的方法

    最初java是不支持对文本文件的处理的,为了弥补这个缺憾而... 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader,它是字节

    JAVA文本编辑器.rar

    在读取文件时,可以使用FileReader和InputStreamReader配合指定编码,写入文件时则使用FileWriter和OutputStreamWriter。 文件I/O操作是文本编辑器的基本功能之一。Java提供了java.io包,包含了各种流类用于读写...

    JAVA读取文件——以行为单位读取

    总的来说,Java中以行为单位读取TXT文件是通过组合使用`FileReader`、`BufferedReader`和`readLine()`方法实现的。这种方式既简单又高效,适用于大多数文本处理需求。在实际项目中,你可以根据需要扩展这个基础示例...

    Java中IO解读与使用实例-动力节点共17页.pdf

    转换则负责在字节流和字符流之间进行转换,例如InputStreamReader和OutputStreamWriter。 二、核心组件详解 1. FileInputStream和FileOutputStream:用于读写文件的字节流,分别是输入和输出。 2. FileReader和...

    Java 文件读取器

    总结起来,Java的`InputStream`和`FileReader`分别用于处理二进制数据和文本数据的读取,而`InputStreamReader`允许你在读取文件时指定字符编码。在用户界面中选择文件时,尽管`FileDialog`在早期版本中被使用,但...

    java的文本读取和写入

    本主题将详细阐述如何使用`FileReader`和`BufferedReader`以及`FileWriter`进行文本文件的读写,并通过分析提供的四个源代码文件(xieWenJian.java、duWenJian.java、DuWenJian2.java、XieWenJian2.java)来加深理解...

    prg.zip_reading

    9. **编码问题**:如果文件不是使用系统默认编码,而是其他编码(如UTF-8),则需要使用`InputStreamReader`和`BufferedReader`配合,指定合适的编码。例如:`new InputStreamReader(new FileInputStream(file), ...

    58-初级软件开发工程师(Java)考试大纲.docx

    * InputStreamReader 和 OutputStreamWriter 及其字符编码 * 缓冲流的概念 * FileReader 和 FileWriter * 文件访问(RandomFileAccess、File) * 对象序列化及 Serializable 的使用 三、Java 语言高级知识 * ...

    (完整版)Java程序设计任务驱动式教程-任务二十五-顺序进出之道(文件的顺序访问).ppt

    顺序访问是指按照文件内容的原始顺序逐个读取或写入数据,这通常涉及到使用`FileReader`和`FileWriter`类。 在Java中,`FileReader`和`FileWriter`是处理字符流的类,它们分别用于读取和写入文本文件。`FileReader`...

    JavaIO实例|字节流|字符流|缓冲流|转换流IODemo

    例如,使用 FileReader 和 FileWriter 可以方便地读取和写入文本文件。 ### 3. 缓冲流 缓冲流在字节流和字符流的基础上增加了缓冲功能,可以提高数据传输效率。BufferedInputStream 和 BufferedOutputStream 是...

    Java基本IO使用

    我们通常使用`InputStreamReader`和`OutputStreamWriter`将字节流转化为字符流,以便处理字符编码问题。此外,`FileReader`和`FileWriter`可以直接创建,用于读写文本文件。 为了提高读写效率并提供特殊功能,我们...

Global site tag (gtag.js) - Google Analytics