黑马程序员-java基础IO流(3)

原创 2015年07月10日 09:31:54

——- android培训java培训、期待与您交流! ———-


一、BufferedReader类

1、定义:

从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
注:可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

2、常用方法:

常用的方法如下:

BufferedReader(Reader in) -> 在创建一个使用默认大小输入缓冲区的缓冲字符输入流。

close() -> 关闭该流并释放与之关联的所有资源。

read() -> 读取单个字符。

read(char[] cbuf, int off, int len) -> 将字符读入数组的某一部分。

readLine() -> 读取一个文本行。

代码块

练习:通过字符数组进行读取D盘下的demo.txt文件,然后在控制台上显示。

package com.itheima2;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
 * 字符流的缓冲区:
 * 出现时为了提高流的操作效率而出现的。
 * 所以在创建缓冲区之前,必须要先有流对象
 * 
 * 该缓冲区中提供了一个跨平台的换行符。
 * newLine();
 * 
 * readLine();不返回任何终止符
 * 
 * 装饰设计模式:
 * 当想要对已有的对象进行功能增强时,
 * 可以定义类。将已有对象传入,基于已有的功能,并提供加强功能。
 * 那么自定义的该类称为装饰类。
 * 
 * 装饰类通常会通过构造方法接收被装饰的对象。
 * 并基于被装饰的对象的功能,提供更强的功能。
 * 
 * BufferedReaderDemo2对象
 * @author jjy
 */
public class BufferedReaderDemo2{

    public static void main(String args[])throws IOException{
        FileReader fr = new FileReader("D:\\buf.txt");

        //为了提高效率。加入缓冲技术。
        BufferedReader bufr = new BufferedReader(fr);

        String line = null;

        while((line=bufr.readLine())!=null){
            System.out.println(line);
        }

        String s1 = bufr.readLine();

        System.out.println("s1:"+s1);

        bufr.close();
    }

}

运行结果:
abcde
s1:null

一、BufferedWriter类

1、定义:

将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
注:该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 (‘\n’) 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。

2、常用方法:

常用的方法如下:

BufferedWriter(Writer out) -> 创建一个使用默认大小输出缓冲区的缓冲字符输出流。

close() -> 关闭该流并释放与之关联的所有资源。

flush() -> 刷新该流的缓冲。

newLine() -> 写入一个行分隔符。

write(int c) -> 写入单个字符。

write(char[] cbuf) -> 写入字符数组。

write(char[] cbuf, int off, int len) -> 写入字符数组的某一部分。

代码块

练习:使用FileWriter类在D盘的buf.txt中写入“abcde”字符串。

package com.itheima2;

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 字符流的缓冲区:
 * 出现时为了提高流的操作效率而出现的。
 * 所以在创建缓冲区之前,必须要先有流对象
 * 
 * 该缓冲区中提供了一个跨平台的换行符。
 * newLine();
 * 
 * BufferedWriterDemo1对象
 * @author jjy
 */
public class BufferedWriterDemo1{

    public static void main(String args[]){

        FileReader fr = null;
        try {

            //创建一个字符写入流对象。
            FileWriter fw = new FileWriter("D:\\buf.txt");

            //为了提高字符写入流效率。加入了缓冲技术。只要将需要被提高效率的流对象作为
            //参数传递给缓冲区的构造函数即可。
            BufferedWriter bufw = new BufferedWriter(fw);

            bufw.write("1234567");

            bufw.flush();

            //其实关闭缓冲区,就是在关闭缓冲区中的流对象。
            bufw.close();


        } catch (IOException e) {
            System.out.println(e.toString());

        }finally{
            try {
                if(fr!=null){
                    fr.close();
                }

            } catch (IOException e) {
                System.out.println(e.toString());
            }
        }
    }

}

运行结果:
1234567

黑马程序员----JAVA基础----IO流_3及反射

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、IO流_3 1,操作对象 ObjectInputStream和ObjectOutputS...

黑马程序员——Java基础----IO(File类、Properties类、打印流、序列流、合并流)(3)

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------                                        ...

黑马程序员——Java基础——IO输入与输出_3

IO流作用: 利用Java语言中的IO流技术处理设备上的数据(硬盘上的文件,内存中驻留的数据) 分类: 按流向 - - - - 输入流 - - - - 输出流 按数据 - - - - ...

黑马程序员_Java基础_IO(3)

---------------------- Android、Java开发期待与您交流! ----------------------                File类        ...

黑马程序员_Java学习日记14_IO流3

----------------------android培训、java培训、期待与您交流! --------------------- 1.IO流,字节流File读写操作 字符流: Fil...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-java基础IO流(3)
举报原因:
原因补充:

(最多只允许输入30个字)