Buffer Stream- BufferReader & BufferWriter

今天学学封装流,相当于缓冲区 ,目的很简单就是减少硬盘读写次数,提高efficiency

另外 学习一个 Buffer-Stream  的 newLine()  方法,本质就是 封装了 判断  ‘\n‘ 而已

 1 import java.io.*;
 2
 3
 4
 5 /**
 6  * Created by wojia on 2017/7/7.
 7  */
 8 public class BufferStreamDemo {
 9     public static void main(String args[]) throws Exception {
10         /**
11          * 练习 buffer stream 进行封装 节点流 InputStream and OutputStream
12          * */
13
14         //1.create a BufferStream , 8192 byte in default
15         BufferedWriter bis = new BufferedWriter( new FileWriter( "E:/test/test.txt") );
16         //8192 times
17         for (int i = 0 ; i < 8190; i++){
18         bis.write(‘A‘);}
19         bis.close();
20         //create a inputstream
21         InputStream in = new FileInputStream("E:/test/test.txt");
22         // create a bufferinputstream
23         BufferedInputStream bin = new BufferedInputStream(in);
24         byte[] buffer = new byte[1024];
25         int length = -1;
26         /**length = .. 这个判断语句是必须的 因为 byte[] (包括字符流的reader ) 输入流不一样为1024 大小 所以会有空位置
27          * 直接system out 会出现 空格(就是数组中的空),因此 还 需要 new String( buffer, 0, length ) 字节流多大就打印多长
28          * */
29         /**当然 java 包里 的<Buffer></buffer> stream也提供了
30          * readline方法,同样具备 如此功能
31          * */
32         while((length = in.read( buffer ))!= -1) System.out.println( new String( buffer, 0, length ) );
33      bin.close(); 
34     }
35 }
时间: 2024-11-03 15:43:20

Buffer Stream- BufferReader & BufferWriter的相关文章

Node Buffer/Stream 内存策略分析

在Node 中,Buffer 是一个广泛用到的类,本文将从以下层次来分析其内存策略: User 层面,即Node lib/*.js 或用户自己的Js 文件调用 new Buffer Socekt read/write File read/write User Buffer 在 lib/buffer.js 模块中,有个模块私有变量 pool, 它指向当前的一个8K 的slab : Buffer.poolSize = 8 * 1024; var pool; function allocPool()

Node.js(六)【Buffer】【Stream】

Net Buffer Stream 1 new Buffer('Hello 皮卡丘') 2 //<Buffer 48 65 6c 6c 6f 20 e7 9a ae e5 8d a1 e4 b8 98> 3 4 new Buffer('Hello 皮卡丘', 'base64') 5 //<Buffer 1d e9 65 a1 af> 6 7 var buf = new Buffer('123456');console.log(buf) 8 //undefined 9 10 var

Java IO(三)- 处理流

处理流 处理类型 字符流 字节流 Buffering BufferReader BufferWriter BufferedInputStream BufferedOutputStream Converting between bytes and character InputStreamReader OutputStreamWriter   Object Serialization --- ObjectInputStream ObjectOutputstream Data Conversion

JavaSe

Java_se易忘点总结 1.java jdk1.7版本以上都支持变量接收二进制以0b或者0B开头代表二进制八进制:0开头十六进制:0x开头2.基本数据类型分类:整数型:byte(1字节),short(2),int(4),long(8)浮点型:float(4字节),double(8)字符型:char(2)布尔型:beelean(1)3.Float和long定义变量时必须加f/lExample:Float f = 23f    Long l = 123l;     浮点型默认为double Byt

10.6-全栈Java笔记:常见流详解(四)

上节我们讲到「Java中常用流:数据流和对象流」,本节我们学习文件字符流和文件缓冲流~ 文件字符流 前面介绍的文件字节流可以处理所有的文件,但是字节流不能很好的处理Unicode字符,经常会出现"乱码"现象.所以,我们处理文本文件,一般可以使用文件字符流,它以字符为单位进行操作. [示例1]使用FileReader与FileWriter实现文本文件的copy package com.bjsxt.io; import java.io.*; /** * 测试文件字符流 * @author 

Android下载文件到SD卡

HttpURLConnection 上传方式: 尝试理解这两种流的区别: InputStreamReader 的读取方式: 1 //创建一个URL对象 2 URL url = new URL(urlString); 3 4 //创建一个HttpURLConnection 5 HttpURLConnetion urlConn = (HttpURLConnection)url.openConnecton(); 6 7 //读取数据 8 BufferReader buffer = new Buffer

Java SE 8 流库

1. 流的作用 通过使用流,说明想要完成什么任务,而不是说明如何去实现它,将操作的调度留给具体实现去解决: 实例:假如我们想要计算某个属性的平均值,那么我们就可以指定数据源和属性,然后,流库就可以对计算进行优化: 1.1. 从迭代到流的操作 1.1.1. java.nio.file深度剖析 从java.nio.file提供的功能不难看出已经可以替换java.io.file所提供的功能: 1.1.1.1. java.nio.file的主要功能 1:对文件系统本身的操作,例如文件的复制,移除,删除,

java多种文件复制方式以及效率比较

1.背景 java复制文件的方式其实有很多种,可以分为 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,BufferedOutputStream 传统的字符流读写复制FileReader,FileWriter,BufferWriter,BufferedWriter,BufferedReader NIO系列的FileChannel FileChannel+缓冲 java.nio.Files.copy() 第三方包中的Fi

gulp源码解析(二)—— vinyl-fs

在上一篇文章我们对 Stream 的特性及其接口进行了介绍,gulp 之所以在性能上好于 grunt,主要是因为有了 Stream 助力来做数据的传输和处理. 那么我们不难猜想出,在 gulp 的任务中,gulp.src 接口将匹配到的文件转化为可读(或 Duplex/Transform)流,通过 .pipe 流经各插件进行处理,最终推送给 gulp.dest 所生成的可写(或 Duplex/Transform)流并生成文件. 本文将追踪 gulp(v4.0)的源码,对上述猜想进行验证. 为了分