`
javasogo
  • 浏览: 1817345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用Java操作文本文件的方法详解(转)

阅读更多

最初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文本文件操作方法实例详解

    这个实例展示了Java中基本的文本文件读写操作,包括使用Reader、Writer及其子类,以及BufferedReader和PrintWriter的功能。在实际开发中,这些基础操作是处理文本数据不可或缺的部分。记住,每次操作完文件后,记得...

    java文本读取方法

    ### Java文本读取方法详解 在Java编程语言中,读取文本文件是常见的操作之一,尤其是在处理大量数据或日志文件时。本文将详细介绍四种不同的Java文本读取方法:按字节读取文件内容、按字符读取文件内容、按行读取...

    java中对文件操作大全

    ### Java中文件操作详解 #### 一、获取控制台用户输入信息 在Java中,获取控制台用户输入信息是一项基本但重要的操作。如标题“Java中文件操作大全”所示,其中一个示例方法`getInputMessage()`用于从控制台读取...

    java如何读取文件

    本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...

    Java中正则表达式使用方法详解

    例如,要在文本文件中搜索美国的社会安全号码,可以使用正则表达式“\d{3}-\d{2}-\d{4}”匹配所有 123-12-1234 形式的社会安全号码。 Java中的正则表达式使用方法详解为读者提供了一个详细的指南,了解正则表达式的...

    MANIFEST.MF 文件内容详解(转)

    标题中的"MANIFEST.MF 文件内容详解(转)"是指一篇关于理解Java应用程序的MANIFEST.MF文件的文章。MANIFEST.MF文件是Java档案(JAR)文件格式的一部分,它包含了有关JAR文件元数据的重要信息。这篇博文可能是从其他...

    Java编程中最基础的文件和目录操作方法详解

    - **以字符为单位读取**(文本文件):适用于读取包含字符数据的文本文件,例如支持中文字符。Java提供`BufferedReader`或`FileReader`来读取字符流。`readFileByChars()`方法展示了一个简单的例子,通过`...

    csv文件中,解决数字列转换成文本列

    本文将详细介绍如何在CSV文件中解决数字列转换成文本列的问题,并通过示例代码来具体说明操作步骤。 ### 一、问题背景 在日常的数据处理工作中,CSV(逗号分隔值)文件是一种非常常见的数据存储格式。它简单易用,...

    dxf文件解析,使用kabeja实现dxf文件对pdf,svg,png,jpg 的转换,内含完整的kabeja的jar包含kab

    Kabeja是一个开源的Java库,专门用于解析和操作DXF文件,并支持将其转换为其他图形格式,如PDF、SVG、PNG和JPG。 Kabeja的核心功能包括: 1. **DXF解析**:Kabeja可以读取DXF文件的各个部分,包括图层、线型、实体...

    Java输入输出流及文件读写详解

    ### Java 输入输出流及文件读写详解 #### I/O 类体系结构 在Java开发中,输入输出(I/O)操作是非常重要的部分,特别是在处理文件、网络通信等方面。Java的I/O类体系主要位于`java.io`包中,此外还有一些新实现的I...

    java文件操作

    - `FileReader`和`FileWriter`用于读写文本文件,通常以UTF-8编码。 - 写入文件: ```java FileWriter writer = new FileWriter("example.txt"); writer.write("Hello, Java!"); writer.close(); ``` 3. **...

    java对mht文件解析

    ### Java对MHT文件解析及内容抓取技术详解 #### 一、引言 MHT(Mime HTML)文件是一种将HTML文档与嵌入资源(如图像、样式表等)合并为一个文件的格式,方便在网络上传输。本文将详细介绍如何使用Java语言解析MHT...

    Java文本文件

    ### Java文本文件 #### Java面试题集锦,经典中的经典 这部分描述提示我们,文档内容可能包含了大量针对Java程序员面试准备的经典题目,涉及Java的基础知识、核心概念、数据结构、异常处理、面向对象特性等多个...

    Java 生成pdf文件加盖公章图片,上传阿里云

    这里,我们探讨如何使用Java实现这一功能,并将生成的文件上传至阿里云存储服务。以下是一些关键知识点: 1. **Java PDF库**:生成PDF文件通常需要借助第三方库,如iText或Apache PDFBox。iText是一个流行的选择,...

    Java文本编辑器实现方法详解

    Java文本编辑器实现方法详解是指使用Java语言实现一个文本编辑器的方法,包括文本编辑器的结构、原理、布局、实现步骤与相关操作技巧等。下面是Java文本编辑器实现方法的详细分析: 一、结构分析 Java文本编辑器的...

    c++文件操作详解

    3. **使用文件类:**`java.io.File`类可以用来表示文件和目录路径名,并提供了一系列方法来获取文件信息、创建和删除文件或目录等。 #### 三、示例代码分析 下面是一些具体的文件操作示例代码: ##### 1. 使用...

    java文件上传详解

    ### Java文件上传详解 在Java Web开发中,文件上传是一个常见的需求,特别是在处理用户上传图片、文档等场景时。本文将深入探讨如何使用Java实现文件上传功能,包括使用`commons-fileupload`和`commons-io`库的具体...

    张孝祥Java邮件开发详解

    本教程“张孝祥Java邮件开发详解”深入探讨了如何使用Java来实现邮件的发送功能,涵盖了从基础概念到高级特性的全方位讲解。 首先,Java Mail API是Java中用于处理邮件的核心库,它提供了丰富的类和接口,使得...

    Java文本打印机效果

    ### Java文本打印机效果 #### 知识点概览 1. **Java Applet与图形界面** 2. **线程管理** 3. **文本动画实现** 4. **异常处理** #### 知识点详解 ##### 1. Java Applet与图形界面 **Java Applet**是一种在...

Global site tag (gtag.js) - Google Analytics