Java_20 带缓存的输入/输出流
来源:互联网 发布:c语言智能2048 编辑:程序博客网 时间:2024/06/06 10:28
1.BufferedInputStream类与BufferedOutputStream类
BufferedInputStream类:可以对任意的InputStream类进行带缓存区的包装以达到性能的优化BufferedInputStream类的构造方法BufferedInputStream(InputStream in)BufferedInputStream(InputStream in,int size)第一种的构造函数创建了一个带有32个字节的缓存流第二种的构造方法按照指定的大小来创建缓存区BufferedOutputStream类:使用BufferedOutputStream和OutputStream输入信息完全一样,只是BufferedOutputStream有一个flush()方法用来将缓存区的数据强制输出完BufferedOutputStream的构造方法BufferedOutputStrean(OutputStream in)BufferedOutputStream(OutputStream in,int size)第一种构造函数创建32个字节的缓存区,第二种形式以指定的大小来创建缓存区flush()方法就是用于即使缓存区没有满的情况下,也将缓存区的内容强制写入到外设,习惯上称这个过程为刷新。flush()方法只对使用缓存区的OutputStream类的子类有效。当调用close()方法时,系统在关闭流之前,也会将缓存区中的信息刷新到磁盘文件
2.BufferedReader类和BufferedWriter类
BufferedReader类与BufferedWriter类分别继承Reader类与Writer类。这两个同样具有内部缓存机制字符数据--BufferedWriter--OutputStreamWriter--OutputStream--文件BufferedReader类常用的方法如下read()方法:读取单个字节readLine()方法:读取一个文本行,并将其返回为字符串;若如数据可读,则返回nullwriter(String s,int off,int len)方法:写入字符串的某一部分flush()方法:刷新该流的缓存newLine()方法:写入一个行的分隔符在使用BufferedWriter类的Writer()方法时,数据并没有立刻写入至输入流中,而是首先进入缓存区,如果想要立刻将缓存区中的数据写入输入流中,一定要调用flush()方法
//追加并输出文件package Demo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class BufferedReaderDemo { public static void main(String[] args) { String a[] = {"abc","ABC","123"}; File file = new File("D:/02.txt"); try { FileWriter fw = new FileWriter(file,true); BufferedWriter bw = new BufferedWriter(fw); for(int i=0;i<a.length;i++){ bw.write(a[i]); bw.newLine(); } bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String s = null; int i = 0; while((s=br.readLine())!=null){ i++; System.out.println("第"+i+"行:"+s); } br.close(); fr.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
阅读全文
0 0
- Java_20 带缓存的输入/输出流
- JAVA 带缓存的输入/输出流
- 带缓存的输入/输出流
- 带缓存的输入流和输出流
- oracle带输入与输出参数的调用
- 带格式的输出语句及输入语句
- Ado.Net调用带输入,输出参数的存储过程
- 带进度条的输入流
- 带缓冲区的输出流
- 带缓存的字节输入输出流
- 带缓存的字符输入输出流
- 带缓存的Okhttp
- 带缓冲区的输入流(读)案例
- 带缓冲区的输出流(写)案例
- 带*密码的输入
- 带输入的Dialog
- petshop的缓存输出
- SQL----带输入、输出参数的动态SQL的执行问题
- 心灵鸡汤
- 对 c\c++ char类型的理解
- Activity与Fragment之间的传值
- matlab批量重命名文件名
- HorizontalScrollView简单使用
- Java_20 带缓存的输入/输出流
- hdu6168Numbers(第九场模拟)
- LSTM原理图解析及入门学习
- ubuntu 安装 pip
- spark学习-24-Spark算子Transformations和Action使用大全(Action章)
- 【redis】AOF 持久化
- 如何在Apache中开启虚拟主机
- SSH整合实例
- 随机模拟的基本思想和常用采样方法(sampling)