Java_08_30课堂总结
来源:互联网 发布:js判断密码长度 编辑:程序博客网 时间:2024/05/18 20:52
12.5字符流
1、缓冲的字符流BufferedReader/BufferedWriter
采用缓冲处理是为了提高效率,如果没有缓存,例如FileReader对象,每次调用read()方法进行读操作时,都会直接去文件中读取字节,转换成字符并返回,这样频繁的读取文件效率很低。
缓冲的字符流的出现提高了对流的操作效率,原理就是将数组进行封装。
在使用缓冲的字符流对象时,缓冲的存在是为了增强流的功能,因此在建立缓冲的字符流对象时,要先有流对象的存在。
public BufferedReader(Reader in) ;
public BufferedReader(Reader in, int sz)
public BufferedWriter(Writer out) ;
public BufferedWriter(Writer out, int sz);
BufferedReader的特有方法:public String readLine();//一次读一行,到行标记时,将行标记之前的字符数据作为字符串返回。当读到末尾时,返回null。
BufferedWriter的特有方法:public void newLine();//写出平台相关的行分隔符来标记一行的终止。Windows平台下为’\n’。
使用缓冲的字符流时其实就是使用流对象的方法,只不过加入了数组,对数据进行了临时存储,为了提高操作数据的效率。
上课实例:
1、import java.io.*;
public class BufferedIODemo2 {
public static void main(String[] args){
FileReader fr=null;
BufferedReader br=null;
try{
fr=new FileReader("res/demo.txt");
br=new BufferedReader(fr,255);
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
}
//str=br.readLine();
//while(str!=null){
//System.out.rintln(str);
//str=br.readLine();
//}
}catch(FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
实例2
import java.io.*;
public class MyBufferedReader {
//属性
private Reader r;
//构造方法
public MyBufferedReader(Reader r){
this.r=r;
}
//readLine()方法;增加一个缓冲区,然后调用r的对象的read()读取字符放到缓冲区,
//当读到行标记时,把缓冲区中的字符转换成字符串返回
public String readLine(){
//缓冲区
StringBuffer strB=new StringBuffer();
int ch=0;
try {
while((ch=r.read())!=-1){
if(ch=='\r')
continue;
if(ch=='\n')
return new String(strB);
else
strB.append((char)ch);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(strB.length()!=0)
return new String(strB);
return null;
}
//close()方法
public void close(){
try {
r.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- Java_08_30课堂总结
- 课堂总结
- 课堂总结
- 课堂总结
- 课堂总结
- 课堂总结
- 课堂总结
- 课堂总结
- Java_09_05课堂总结
- Java_09_06课堂总结
- Java_09_07课堂总结
- Java_09_08课堂总结
- Java_09_13课堂总结
- Java_09_14课堂总结
- Java_09_15课堂总结
- Java_09_19课堂总结
- Java_09_20课堂总结
- Java_09_21课堂总结
- 程序员面试100题之七:最长公共子字符串
- Java_08_31课堂总结
- 将exec执行结果放入变量
- 从开心网的奴隶安抚与折磨想到员工积极性与人力成本的问题
- 流程图是开发人员与需求人员交流的工具之一
- Java_08_30课堂总结
- 用while和for循环嵌套输出表格
- CString::Format()函数与格式输入与输出
- ios 学生的信息
- Java_08_29课堂总结
- 在vs2005工程中制作cab包
- C语言中的char类型
- EditText动态的刷新Listview显示查询结果
- System.Collections.Generic 命名空间1