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

java读文件

    博客分类:
  • J2SE
阅读更多

最初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来读取文件的时候,如下:

 

 

InputStreamReader isr=new InputStreamReader(new FileInputStream("ming.txt"));
  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系统是需要我们多记记的,不然哪天就生疏了。
测试文件的内容为:

 

ming.txt
欢迎光临my blog
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();
 }
}
 

 

 

 

简单的示例程序如下:

 

/**
  * 读出1.txt中的内容,写入2.txt中
  *
  */
import java.io.*;
public class ReadWriteFile{
 public static void main(String[] args){
  try{
  
   File read = new File("c:\\1.txt");
   File write = new File("c:\\2.txt");
  
   BufferedReader br = new BufferedReader(
         new FileReader(read));
   BufferedWriter bw = new BufferedWriter(
         new FileWriter(write));
   String temp = null;
   temp = br.readLine();
   while(temp != null){
    //写文件
    bw.write(temp + "\r\n"); //只适用Windows系统
    //继续读文件
    temp = br.readLine();
   }
  
   bw.close();
   br.close();
  
  }catch(FileNotFoundException e){ //文件未找到
   System.out.println (e);
  }catch(IOException e){
   System.out.println (e);
  }
 }
}
 

 

 

 

 

分享到:
评论

相关推荐

    java读取文件方法大全

    根据给定的文件信息,我们可以总结出一系列关于Java中读取文件的方法,这些方法涵盖了不同层次的数据读取,包括字节、字符以及行级别的读取。以下是对这些知识点的详细阐述: ### Java读取文件方法大全:读取File流...

    java读取文件大全

    java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料

    java 读取文件 文件读取操作

    Java中`java.io.FileInputStream`类提供了按字节读取文件的功能。这种方法适用于读取二进制文件,例如图像、音频或视频文件。下面的代码示例展示了如何按字节读取文件: ```java FileInputStream in = new ...

    java读文件内容小程序

    java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序java读文件内容小程序...

    Java读取大文件的处理

    2. 使用ProgressMonitorInputStream读取文件:我们使用了ProgressMonitorInputStream来读取大文件,这样可以监控文件的读取进度。 3. 使用多线程技术:我们使用了多线程技术来读取大文件,以提高响应速度。当按钮被...

    java如何读取文件

    在Java编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...

    java读取文件方法大全.txt

    根据提供的文件信息,本文将详细介绍Java中用于读取文件的各种方法。这包括使用不同类(如`InputStream`, `FileInputStream`, `BufferedReader`, `InputStreamReader`等)来按字节或字符读取文件的方式。 ### Java...

    java读取文件中文乱码

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

    Java读取文件的几种方式

    介绍Java直接读取、带缓冲读取、内存映射读取文件,并详细注释。

    java 读取文件方法的总结

    Java 读取文件的方法在Java编程中至关重要,无论是处理文本文件、二进制文件还是其他类型的数据,都需要灵活运用各种读取方式。以下是对Java读取文件的五种方法的详细说明,每种方法都有相应的代码示例: 1. **按...

    java读取TXT文件入库

    - 读取文件和操作数据库完成后,记得关闭`BufferedReader`、`FileReader`、`PreparedStatement`和`Connection`,以释放系统资源。 ```java br.close(); fr.close(); pstmt.close(); conn.close(); ``` 以上就是...

    java读取文件内容

    // 读取文件并添加到列表 Collections.sort(stus); ``` #### 3.2 自定义对象排序 本例中自定义了`Student`类,并实现了`Comparable`接口,以便于列表排序。 示例代码: ```java private static class Student ...

    java读取文件免除乱码

    在Java编程中,读取文件时可能会遇到乱码问题,这通常是由于文件编码格式与程序期望的编码格式不一致导致的。本篇文章将深入探讨如何在Java中正确地读取不同编码格式的文件,以避免乱码现象。 首先,我们需要了解...

    java 读取文件乱码

    在Java编程中,遇到“java 读取文件乱码”的问题通常是由于编码格式不匹配导致的。当程序按照一种编码方式打开文件,而文件实际采用的是另一种编码时,就会出现乱码现象。解决这个问题需要理解Java中处理字符编码的...

    Java读取资源文件时内容过长与换行的处理

    ### Java读取资源文件时内容过长与换行的处理 ...这些方法可以让properties文件更加整洁、易读,并且在Java程序中也能正确地获取到完整的属性值。掌握这些技巧对于日常的Java开发工作非常有帮助。

    Java读取json文件,并转化为map取值

    本教程将深入讲解如何使用Java读取JSON文件,并将其内容转化为Map以便进行取值操作。 首先,我们需要引入处理JSON的库。Java标准库并不直接支持JSON操作,所以我们通常会使用第三方库,如`org.json`或`...

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

    在Java编程语言中,读取文件是常见的任务之一,尤其对于处理文本文件,如TXT文件,以行为单位读取文件内容是一种效率较高且易于管理数据的方式。本篇将深入探讨如何使用Java进行逐行读取TXT文件,并提供相关示例代码...

    Java读取文件并对其排序后重新写入文件

    在Java编程中,读取文件、对数据进行排序并重新写入文件是常见的操作,尤其在数据处理和分析场景中。下面将详细讲解这个过程,包括相关知识点和具体实现。 首先,我们需要导入Java的`java.io`包,该包包含了处理...

Global site tag (gtag.js) - Google Analytics