Java文件与io——缓冲流
对文件或其它目标频繁的读写操作,效率低,性能差。
使用缓冲流的好处,能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。
BufferedInputStream:为另一个输入流添加一些功能,在创建时,会创建一个内部缓冲区数组,用于缓冲数据
BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
public class BufferedStreamDemo {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        byteStreamOut();
        byteStreamIn();
        charStreamOut();
        charStreamIn();
    }
    //BufferedOutputStream
    public static void byteStreamOut(){
        try {
            OutputStream out=new FileOutputStream("G:\\hhb.txt");
            BufferedOutputStream bos=new BufferedOutputStream(out);
            bos.write("hhhhh".getBytes());
            bos.close();
            out.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //BufferedInputStream
    public static void byteStreamIn(){
        try {
            InputStream in=new FileInputStream("G:\\hhb.txt");
            BufferedInputStream bis=new BufferedInputStream(in);
            byte[] bytes=new byte[1024];
            int len=-1;
            StringBuffer sb=new StringBuffer();
            while((len=bis.read(bytes))!=-1){
                sb.append(new String(bytes, 0, len));
            }
            bis.close();
            in.close();
            System.out.println(sb);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //BufferedWriter
    public static void charStreamOut(){
        try {
            Writer w=new FileWriter("G:\\hhh.txt");
            BufferedWriter bw=new BufferedWriter(w);
            bw.write("我爱你!");
            bw.close();
            w.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //BufferedReader
    public static void charStreamIn(){
        try {
            Reader r=new FileReader("G:\\hhh.txt");
            BufferedReader br=new BufferedReader(r);
            char[] c=new char[1];
            int len = -1;
            StringBuffer sb=new StringBuffer();
            while((len=br.read(c))!=-1){
                sb.append(c,0,len);
            }
            br.close();
            r.close();
            System.out.println(sb);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
Java文件与io——缓冲流的更多相关文章
- Java文件与io——打印流和对象流
		打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流:PrintStream 字符打印流:PrintWriter 打印流可以很方便的进行输出 public class Print ... 
- Java文件与io——字符流
		Writer写入字符流的抽象类.对文件的操作使用:FileWriter类完成 Reader读取字符的抽象类. public class CharDemo { /** * @param args */ ... 
- IO缓冲流
		目录 IO缓冲流 缓冲流 基本原理 字节缓冲流 字符缓冲流 IO缓冲流 缓冲流也叫高效流,能够更高效的进行读取: 转换流:能够进行编码转换 序列化流:持久化存储对象 缓冲流 缓冲流--就是对应4个Fi ... 
- java——io、字节流缓冲区拷贝文件、字节缓冲流
		使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] ... 
- java 文件字节和字符流 缓冲流
		流的原理 1) 在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行:2) J2SDK 提供了各种各样的“流”类,用以获取不同种类的数据:程序中通过标准的方法输入或输出数据 ... 
- java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件
		字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 private static void write() throws IO ... 
- Java文件与io——复制文件和转换流
		字节流与字符流的区别 在所有的流操作里,字节永远是最基础的.任何基于字节的操作都是正确的.无论是文本文件还是二进制的文件. 如果确认流里面只有可打印的字符,包括英文的和各种国家的文字,也包括中文,那么 ... 
- 6.3(java学习笔记)缓冲流
		一.缓冲流 使用缓冲流后的输入输出流会先存储到缓冲区,等缓冲区满后一次性将缓冲区中的数据写入或取出. 避免程序频繁的和文件直接操作,这样操作有利于提高读写效率. 缓冲流是构建在输入输出流之上的,可以理 ... 
- Java文件与io——字节数组流数据流字符串流
		字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效. ... 
随机推荐
- nginx利用proxy_cache来缓存文件
			为什么要做web cache,我想大家最主要的是解决流量的压力.随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力.与此同时某些网站的页面 ... 
- MD5 校验文件
			https://blog.csdn.net/wudishine/article/details/42466831 MD5.h #ifndef MD5_H #define MD5_H #include ... 
- IIS应用池保持激活工具开发
			之前的 开源一个定时任务调度器 webscheduler 中涉及的定时调用应用已经开始在正式环境中启用,发布到IIS下进行测试,发现一旦应用长时间没有访问(大约半个多小时)就会引发 Applicati ... 
- 详解MYSQL各种优化原理
			说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原 ... 
- Frequent Pattern 挖掘之二(FP Growth算法)
			Frequent Pattern 挖掘之二(FP Growth算法) FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断 ... 
- Jmeter连接MySQL配置(能执行多条sql语句)
			Database URL为MySQL的连接串,如果要执行多条SQL语句,后面还要添加“?allowMultiQueries=true” 
- 我的笔记文档版本控制系统-MediaWiki-回到顶部/链接放大/升级
			为了练习自己的JS.CSS基本功,这些天和MediaWiki干上了!^_^ 下面是我的MediaWiki新添加的功能: 回到顶部 链接放大 MediaWiki升级 回到顶部 回到顶部是很多网站的基本功 ... 
- ADT-23.0.2百度网盘下载地址
			最近 Google 被墙 http://download.csdn.net/download/wentai2009/7736389 
- C#z中的虚方法,抽象类
			1.虚方法 我在这动物类中定义了一个虚方法 Dosth class Animal { public int Aid; public string Name; public void SetAid(in ... 
- MVC下使用日期控件
			初学MVC,使用日期控件的时候发现不是特别理想,本来是想直接使用JQuery的日期控件的,发现支持的不是很好,type类型要改成date才能使用,而且编辑的时候使用@Html.EditFor也不能绑定 ... 
