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

BufferedReader和BufferedWriter

 
阅读更多

 java.io.BufferedReader与java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出至目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。例如一个文件,通过缓冲区可减少对硬盘的输入/输出动作,以提高文件存取的效率。

      从标准输入流System.in中直接读取用户输入时,用户每输入一个字符,System.in就读取一个字符。为了能一次读取一行用户的输入,使用了BufferedReader来对用户输入的字符进行缓冲。readLine()方法会在读取到用户的换行字符时,再一次将整行字符串传入。

     System.in是一个位流,为了转换为字符流,可使用InputStreamReader为其进行字符转换,然后再使用BufferedReader为其增加缓冲功能。例如:

 

  1. BufferedReader reader =new BufferedReader(new InputStreamReader(System.in)); 

 

     范例14.19示范了BufferedReader与BufferedWriter的使用。可以在文字模式下输入字符,程序会将输入的文字存储至指定的文件中,如果要结束程序,输入quit字符串即可。

    范例14.19  BufferedReaderWriterDemo.java

 

  1. package onlyfun.caterpillar;  
  2. import java.io.*;  
  3. public class BufferedReaderWriterDemo  
  4. {  
  5.   public static void main(String[] args)  
  6.   {  
  7.       try 
  8.       {// 缓冲System.in输入流  
  9.          BufferedReader bufReader =new BufferedReader(new InputStreamReader(System.in));// 缓冲FileWriter字符输出流       BufferedWriter bufWriter =new BufferedWriter(new FileWriter(args[0]));              
  10.         String input = null;              
  11.         // 每读一行进行一次写入动作  
  12.          while(!(input =bufReader.readLine()).equals("quit"))   
  13.         {  
  14.            bufWriter.write(keyin);// newLine()方法写入与操作系统相依的换行字符  
  15.              bufWriter.newLine();  
  16.          }              
  17.          bufReader.close();  
  18.          bufWriter.close();  
  19.        }  
  20.        catch(ArrayIndexOutOfBoundsException e)            {  
  21.           System.out.println("没有指定文件");  
  22.        }  
  23.        catch(IOException e)   
  24.        {e.printStackTrace();}  
  25.    }  

 

由于换行字符依操作系统不同而有所区别,在Windows下是\r\n,在Linux下是\n,在Mac OS下是\r,您可以使用newLine()方法,由执行环境依当时的操作系统决定该输出哪一种换行字符。

分享到:
评论

相关推荐

    BufferedReader 和BufferedWriter 实例

    在Java编程语言中,`BufferedReader`和`BufferedWriter`是两个非常重要的I/O流类,用于提高读写操作的效率。它们属于字符流,主要用于处理文本数据,相较于原始的`InputStream`和`OutputStream`,这两个类通过内部...

    Java中BufferedReader与BufferedWriter类的使用示例

    在Java编程语言中,`BufferedReader`和`BufferedWriter`是两个非常重要的类,它们分别位于`java.io`包中,用于提高字符输入和输出的效率。这两个类继承自抽象基类`Reader`和`Writer`,为读写操作提供了缓冲区功能。 ...

    IO流三种流方式的文本文件的复制

    在使用时,先创建BufferedReader和BufferedWriter实例,然后将它们与FileReader和FileWriter关联,通过readLine()和write()方法实现文本文件的复制。 下面是一个简单的使用FileReader、BufferedReader和...

    文件读写 BufferedReader BufferedWriter 示例 去除代码后面多余空格

    文件读写 BufferedReader BufferedWriter 去除代码后面空格 简单 readLine newLine flush

    java高级IO学习

    - **BufferedReader/BufferedWriter Example**:通过添加BufferedReader和BufferedWriter,可以一次处理更多数据,减少系统调用,提高性能。 6. **I/O流的链** Java允许将多个流链接在一起,形成流的链。例如,...

    文件流的读取与写入

    "文件流的读取与写入"这个主题主要涵盖了如何使用Java中的BufferedReader和BufferedWriter类来高效地处理文件内容。这两个类属于Java.io包,它们提供了缓冲功能,可以提高文件操作的性能。 BufferedReader是用于...

    javaio流学习总结.docx

    3. 按功能:流还可以分为节点流(如FileInputStream和FileOutputStream)和处理流(如BufferedReader和BufferedWriter)。节点流直接连接到数据源或目标,而处理流通常用于增强或包装其他流,提供更高效、便捷的功能...

    IO文件流操作

    以下是一个简单的从一个文件复制到另一个文件的示例,使用了BufferedReader和BufferedWriter: ```java try { BufferedReader reader = new BufferedReader(new FileReader("source.txt")); BufferedWriter writer...

    java字符流练习-电话本管理系统

    首先,Java的字符流分为输入流(InputStreamReader, BufferedReader)和输出流(OutputStreamWriter, BufferedWriter)。InputStreamReader和OutputStreamWriter是基础的字节到字符的转换流,它们分别用于读取和写入...

    山东科技大学-Java数据结构实验五.docx

    * 流类库的使用:包括使用 BufferedReader 和 BufferedWriter 实现文件读写操作,使用 System.in 获取用户输入等。 * 文件读写操作:包括将用户输入的文字写入到文件中,并从文件中读取数据。 * 对象流的使用:包括...

    io流java题目.docx

    字符流主要有InputStreamReader、OutputStreamWriter、BufferedReader和BufferedWriter等类,它们分别用于读取和写入字符数据,并通过Buffered类提高性能。 2. 缓冲流(Buffered Stream):BufferedInputStream、...

    西农java实习五-文件操作.docx

    BufferedReader和BufferedWriter是Java中的字符流,它们通过内部缓冲区提高读写效率。BufferedWriter的write方法用于写入字符或字符串,而BufferedReader的readLine方法则用于读取文本文件的一行内容。 接下来是...

    黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip

    2. 为了提高性能,创建对应的BufferedReader和BufferedWriter,分别包装FileInputStream和FileOutputStream。 3. 使用BufferedReader的readLine()方法逐行读取源文件内容,直到返回null表示文件读取完毕。 4. 对每行...

    Java输入输出(IO)和流的基本概念-Java教程共2页

    4. 缓冲区:为了提高性能,Java提供了一种机制,即通过BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter等类,将数据先存放在内存缓冲区,一次性处理大量数据,减少频繁的物理I/O操作。...

    第一行代码Java源代码第11章课程代码JavaIO编

    这些基类提供了读写数据的基本方法,但通常我们不会直接使用它们,而是使用它们的子类,如FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等,这些子类提供了更强大的功能和性能优化。...

    网络程序设计实验报告.pdf

    我们使用了 BufferedReader 和 BufferedWriter 类来实现信息的读取和发送。 本次实验报告的目的是掌握 Java.IO 和 Java.Net 包的用法,并设计、实施及调试一个基于 Socket 的聊天程序。实验结果表明,本次实验的...

    java io 系列操作代码练习 Java学习资料

    3. BufferedReader和BufferedWriter:这两个是缓冲字符流,提供缓冲区来提高读写效率。 4. DataInputStream和DataOutputStream:用于处理基本数据类型的输入输出。 5. ObjectInputStream和ObjectOutputStream:处理...

    彻底明白Java的IO系统

    字符流处理Unicode字符序列,有Reader和Writer系列,如BufferedReader和BufferedWriter用于高效读写文本文件。 Java IO系统还包括对象序列化和反序列化的ObjectInputStream和ObjectOutputStream,用于将对象转换为...

    java输入输出流,电子课件

    例如,使用FileInputStream和FileOutputStream读写文件,或者使用BufferedReader和BufferedWriter进行高效的文本文件操作。 总之,Java的输入输出流系统是其强大功能的重要组成部分,允许开发者灵活地处理各种数据...

    JAVASE,IO流部分模块导图

    - **缓冲字符流(BufferedReader/BufferedWriter)**:BufferedReader和BufferedWriter提供缓冲功能,提高了字符读写效率。BufferedReader提供了`readLine()`方法,可以方便地读取一行文本。BufferedWriter提供了`...

Global site tag (gtag.js) - Google Analytics