IO操作——缓冲流(高级流,字节流)

来源:互联网 发布:网络兼职发帖 编辑:程序博客网 时间:2024/05/22 01:32

1.缓冲流(BufferedInputStreamBufferedOutputStream)——>提高读写效率

package day04_;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * 处理流,又称高级流,作用是使用他们可以简化我们的读写操作 *  * 缓冲流:提高读写效率 * BufferedInputStream:缓冲字节输入流,提高读取效率 * BufferedOutputStream:缓冲字节输出流 * @author soft01 * */public class Copy_Demo2 {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("fos.txt");BufferedInputStream bis = new BufferedInputStream(fis);FileOutputStream fos = new FileOutputStream("gm.txt");BufferedOutputStream bos = new BufferedOutputStream(fos);int d = -1;long start = System.currentTimeMillis();while((d = bis.read())!=-1) {bos.write(d);}long end = System.currentTimeMillis();System.out.println("复制完毕!耗时:"+(end-start));bis.close();bos.close();}}

2.缓冲输出流的缓冲区问题
file.flush();——>清空缓冲区,将缓冲区中数据强制写出

package day04_;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;/** * 缓冲输出流的缓冲区问题 * @author soft01 * */public class BOS_flush {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream("linsa.txt");BufferedOutputStream bos = new BufferedOutputStream (fos);String str = "How are you?";byte[] data = str.getBytes("utf-8");bos.write(data);/* * void flush() * 将缓冲区已经缓存的数据一次性写出。 * 频繁的调用flush会降低写出效率, * 但是可以保证写出数据的即时性。 */bos.flush();System.out.println("写出完毕");bos.close();}}

阅读全文
0 0
原创粉丝点击