`
ymq267
  • 浏览: 130356 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

BufferedReader和BufferedWriter

    博客分类:
  • Java
 
阅读更多
1. java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

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

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


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


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


    package ysu.hxy;  
    import java.util.*;  
    import java.io.*;  
      
    public class BufferedReaderWriterDemo   
    {  
        public static void main(String[] args)   
        {  
            try  
            {  
                //缓冲System.in输入流  
                //System.in是位流,可以通过InputStreamReader将其转换为字符流  
                BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));  
                //缓冲FileWriter 并写入文件的路径,追加写入,无源文件时,新建再写入
                BufferedWriter bufWriter = new BufferedWriter(new FileWriter(new FileWriter("c:\\Result.txt",true)));  
      
                String input = null;  
      
                //每读一行进行一次写入动作  
                while(!(input = bufReader.readLine()).equals("quit"))  
                {  
                    bufWriter.write(input);  
                    //newLine()方法写入与操作系统相依的换行字符,依执行环境当时的OS来决定该输出那种换行字符  
                    bufWriter.newLine();  
                }  
                bufReader.close();  
                bufWriter.close();  
            }  
            catch(ArrayIndexOutOfBoundsException e)  
            {  
                System.out.println("没有指定文件");  
            }  
            catch(IOException e)  
            {  
                e.printStackTrace();  
            }  
        }  
    }  


运行结果:

D:\hxy>java ysu.hxy.BufferedReaderWriterDemo test2.txt
fsdafjads;fa
fasdfas
asdfdaf
asd
fdas
fds
fa
df
asdf
dasff
adsf
a
fasd
quit

会在目录下产生一个文件test2.txt,并在其中写入刚才输入的内容。
分享到:
评论

相关推荐

    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