java入门IO流--BufferedInputStream&&BufferedOutputStream

要点:
1、BufferedInputStream是FileInputStream的一个 包装类,同样也是从文件读取数据到程序当中,读取的是字节流。BufferedInputStream与FileInputStream不同点就是BufferedInputStream对FileInputStream的对象进行一个包装(也就是给FileInputStream的对象增加了其他的功能–自带缓冲功能)
2、BufferedOutputStream是FileOutputStream的一个包装类,同样是将程序中的数据读取到文件当中,读取的字节流。
功能描述:
1、我们要将程序中的数据写入到文件zsj.txt。
2、将zsj.txt中的数据读取到程序中,并将其输出
步骤:
1、首先实现程序的第一个功能,我们首先要利用FileOutputStream 的构造方法FileOutputStream(File file)将文件zsj.txt和FileOutputStream对象关联。此时所在的project会自动生成一个zsj.txt文件。

FileOutputStream fo = new FileOutputStream("zsj.txt");

2、我们必须利用BufferedOutputStream的构造方法BufferedInputStream(OutputStream out )将FileOuputStream的对象fo进行一个包装。

BufferedOutputStream bo = new BufferedOutputStream(fo);

3、我们定一个一个String数组

String[] s = new String[] {"good good study,day day up",
                           "To be or not to be,that's a   big question"};

4、利用String类的getBytes()方法将String类型数据转换成byte型数据,
利用一个byte[]型数组接受转换的String数据。利用BufferedOutputStream的方法write(byte[] b,int off,int len)将byte[]数组中的内容写入到zsj.txt中。

for(int i = 0;i<s.length;i++) {
            byte[] b = s[i].getBytes();
            bo.write(b);
        }       

5、现在实现将zsj.txt中的数据读取到程序并输出显示。首先利用FileInputStream(File file)构造方法将文件zsj.txt文件进行一个关联。

FileInputStream fi = new FileInputStream("zsj.txt");

6、利用BufferedInputStream的构造方法BufferedInputStream(InputStream in)对fi进行包装。

BufferedInputStream bi = new BufferedInputStream(fi);

7、定义一个整型变量c用来读取文件zsj.txt的数据,知道读到文件的末尾,返回-1即停止。

int c = 0;
        while((c=bi.read())!=-1) {
            System.out.println((char)c);
        }

8、关闭流,释放资源

bo.close();
bi.close();

总的代码实现

package day10_7;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public class BufferedInputDemo {
    public static void main(String[] args) throws Exception{
        FileOutputStream fo = new FileOutputStream("zsj.txt");
        BufferedOutputStream bo = new BufferedOutputStream(fo);

        String[] s = new String[] {"good good study,day day up",
                                   "To be or not to be,that's a big question"};
        for(int i = 0;i<s.length;i++) {
            byte[] b = s[i].getBytes();
            bo.write(b);
        }
        FileInputStream fi = new FileInputStream("E:\\Java_Program\\day10_7\\zsj.txt");  
        BufferedInputStream bi = new BufferedInputStream(fi);
        int c = 0;
        while((c=bi.read())!=-1) {
            System.out.println((char)c);
        }

        bo.close();
        bi.close();
        }
}

猜你喜欢

转载自blog.csdn.net/makeliwei1/article/details/78168644