最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write(char[] ch,int off,int length),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子类应该分别实现他们。
当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader,它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等。当使用FileReader读取文件的时候。
FileReader fr = new FileReader("ming.txt"); int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch); } |
其中read()方法返回的是读取得下个字符。当然你也可以使用read(char[] ch,int off,int length)这和处理二进制文件的时候类似,不多说了。如果使用
InputStreamReader来读取文件的时候
while((ch = isr.read())!=-1) { System.out.print((char)ch); } |
这和FileReader并没有什么区别,事实上在FileReader中的方法都是从
InputStreamReader中继承过来的。read()方法是比较好费时间的,如果为了提高效率我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用readLine()方法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); } |
当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。与上面对应的写文件的方法为:
FileWriter fw = new FileWriter("hello.txt"); String s = "hello world"; fw.write(s,0,s.length()); fw.flush();
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")); osw.write(s,0,s.length()); osw.flush();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true); pw.println(s); |
不要忘记用完后关闭流!下面是个小例子,帮助新手理解。其实有的时候java的IO系统是需要我们多记记的,不然哪天就生疏了。
hello world i like java language
import java.io.*;
public class TestFile2 { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("ming.txt"); char[] buffer = new char[1024]; int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch); }
InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt")); while((ch = isr.read())!=-1) { System.out.print((char)ch); }
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt"))); String data = null; while((data = br.readLine())!=null) { System.out.println(data); }
FileWriter fw = new FileWriter("hello.txt"); String s = "hello world"; fw.write(s,0,s.length()); fw.flush();
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("hello2.txt")); osw.write(s,0,s.length()); osw.flush();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true); pw.println(s);
fr.close(); isr.close(); br.close(); fw.close(); osw.close(); pw.close(); } } |
分享到:
相关推荐
这个实例展示了Java中基本的文本文件读写操作,包括使用Reader、Writer及其子类,以及BufferedReader和PrintWriter的功能。在实际开发中,这些基础操作是处理文本数据不可或缺的部分。记住,每次操作完文件后,记得...
### Java文本读取方法详解 在Java编程语言中,读取文本文件是常见的操作之一,尤其是在处理大量数据或日志文件时。本文将详细介绍四种不同的Java文本读取方法:按字节读取文件内容、按字符读取文件内容、按行读取...
### Java中文件操作详解 #### 一、获取控制台用户输入信息 在Java中,获取控制台用户输入信息是一项基本但重要的操作。如标题“Java中文件操作大全”所示,其中一个示例方法`getInputMessage()`用于从控制台读取...
本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...
例如,要在文本文件中搜索美国的社会安全号码,可以使用正则表达式“\d{3}-\d{2}-\d{4}”匹配所有 123-12-1234 形式的社会安全号码。 Java中的正则表达式使用方法详解为读者提供了一个详细的指南,了解正则表达式的...
标题中的"MANIFEST.MF 文件内容详解(转)"是指一篇关于理解Java应用程序的MANIFEST.MF文件的文章。MANIFEST.MF文件是Java档案(JAR)文件格式的一部分,它包含了有关JAR文件元数据的重要信息。这篇博文可能是从其他...
- **以字符为单位读取**(文本文件):适用于读取包含字符数据的文本文件,例如支持中文字符。Java提供`BufferedReader`或`FileReader`来读取字符流。`readFileByChars()`方法展示了一个简单的例子,通过`...
本文将详细介绍如何在CSV文件中解决数字列转换成文本列的问题,并通过示例代码来具体说明操作步骤。 ### 一、问题背景 在日常的数据处理工作中,CSV(逗号分隔值)文件是一种非常常见的数据存储格式。它简单易用,...
Kabeja是一个开源的Java库,专门用于解析和操作DXF文件,并支持将其转换为其他图形格式,如PDF、SVG、PNG和JPG。 Kabeja的核心功能包括: 1. **DXF解析**:Kabeja可以读取DXF文件的各个部分,包括图层、线型、实体...
### Java 输入输出流及文件读写详解 #### I/O 类体系结构 在Java开发中,输入输出(I/O)操作是非常重要的部分,特别是在处理文件、网络通信等方面。Java的I/O类体系主要位于`java.io`包中,此外还有一些新实现的I...
- `FileReader`和`FileWriter`用于读写文本文件,通常以UTF-8编码。 - 写入文件: ```java FileWriter writer = new FileWriter("example.txt"); writer.write("Hello, Java!"); writer.close(); ``` 3. **...
### Java对MHT文件解析及内容抓取技术详解 #### 一、引言 MHT(Mime HTML)文件是一种将HTML文档与嵌入资源(如图像、样式表等)合并为一个文件的格式,方便在网络上传输。本文将详细介绍如何使用Java语言解析MHT...
### Java文本文件 #### Java面试题集锦,经典中的经典 这部分描述提示我们,文档内容可能包含了大量针对Java程序员面试准备的经典题目,涉及Java的基础知识、核心概念、数据结构、异常处理、面向对象特性等多个...
这里,我们探讨如何使用Java实现这一功能,并将生成的文件上传至阿里云存储服务。以下是一些关键知识点: 1. **Java PDF库**:生成PDF文件通常需要借助第三方库,如iText或Apache PDFBox。iText是一个流行的选择,...
Java文本编辑器实现方法详解是指使用Java语言实现一个文本编辑器的方法,包括文本编辑器的结构、原理、布局、实现步骤与相关操作技巧等。下面是Java文本编辑器实现方法的详细分析: 一、结构分析 Java文本编辑器的...
3. **使用文件类:**`java.io.File`类可以用来表示文件和目录路径名,并提供了一系列方法来获取文件信息、创建和删除文件或目录等。 #### 三、示例代码分析 下面是一些具体的文件操作示例代码: ##### 1. 使用...
### Java文件上传详解 在Java Web开发中,文件上传是一个常见的需求,特别是在处理用户上传图片、文档等场景时。本文将深入探讨如何使用Java实现文件上传功能,包括使用`commons-fileupload`和`commons-io`库的具体...
本教程“张孝祥Java邮件开发详解”深入探讨了如何使用Java来实现邮件的发送功能,涵盖了从基础概念到高级特性的全方位讲解。 首先,Java Mail API是Java中用于处理邮件的核心库,它提供了丰富的类和接口,使得...
### Java文本打印机效果 #### 知识点概览 1. **Java Applet与图形界面** 2. **线程管理** 3. **文本动画实现** 4. **异常处理** #### 知识点详解 ##### 1. Java Applet与图形界面 **Java Applet**是一种在...