要点:
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();
}
}