1, 字节缓冲输入流BufferedInputStream
/*
* 字节输入流的缓冲流
* java.io.BufferedInputStream
* 继承InputStream,标准的字节输入流
* 读取方法 read() 单个字节,字节数组
*
* 构造方法:
* BufferedInputStream(InputStream in)
* 可以传递任意的字节输入流,传递是谁,就提高谁的效率
* 可以传递的字节输入流 FileInputStream
*/
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("e:a.txt"));
int len = 0;
byte[] bytes = new byte[1024];
while((len=bis.read(bytes))!=-1){
System.out.print(new String(bytes,0,len));
}
bis.close();
2, 字节缓冲输出流BufferedOutputStream
/*
* 字节输出流的缓冲流
* java.io.BufferedOuputStream 作用: 提高原有输出流的写入效率
* BufferedOuputStream 继承 OutputStream
* 方法,写入 write 字节,字节数组
*
* 构造方法:
* BufferedOuputStream(OuputStream out)
* 可以传递任意的字节输出流, 传递的是哪个字节流,就对哪个字节流提高效率
*
* FileOutputSteam
*/
//创建字节输出流缓冲流的对象,构造方法中,传递字节输出流
BufferedOutputStream bos = new BufferedOutputStream(newFileOutputStream("c:\\buffer.txt"));
byte[] bytes = "hello".getBytes();
bos.write(bytes);
3, 字符缓冲输出流BufferedWriter
/*
* 字符输出流缓冲区流
* java.io.BufferedWriter 继承 Writer
* 写入方法 write () 单个字符,字符数组,字符串
*
* 构造方法:
* BufferedWriter(Writer w)传递任意字符输出流
* 传递谁,就高效谁
* 能传递的字符输出流 FileWriter, OutputStreamWriter
*
* BufferedWriter 具有自己特有的方法
* void newLine() 写换行
*
* newLine()文本中换行, \r\n也是文本换行
* 方法具有平台无关性
* Windows \r\n
* Linux \n
*
* newLine()运行结果,和操作系统是相互关系
* JVM: 安装的是Windows版本,newLine()写的就是\r\n
* 安装的是Linux版本,newLine()写的就是\n
*/
BufferedWriter br = new BufferedWriter(new FileWriter("e:a.txt"));
br.write("你好".toCharArray());
br.flush();
br.newLine();
br.write("你好");
br.flush();
br.close();
4,字符缓冲输入流BufferedReader
/*
* 字符输入流缓冲流
* java.io.BufferedReader 继承 Reader
* 读取功能 read() 单个字符,字符数组
* 构造方法:
* BufferedReader(Reader r)
* 可以任意的字符输入流
* FileReader InputStreamReader
*
* BufferedReader自己的功能
* String readLine() 读取文本行 \r\n
*
* 方法读取到流末尾,返回null
* 小特点:
* 获取内容的方法一般都有返回值
* int 没有返回的都是负数
* 引用类型 找不到返回null
* boolean 找不到返回false
* readLine()方法返回行的有效字符,没有\r\n
*/
//创建字符输入流缓冲流对象,构造方法传递字符输入流,包装数据源文件
BufferedReader br = new BufferedReader(new FileReader("e:a/txt"));
String line = "";
//调用缓冲流的方法 readLine()读取文本行
//循环读取文本行, 结束条件 readLine()返回null
while((line = br.readLine())!=null){
System.out.println(line);
}
br.close();