您的位置:首页 > 职场人生

黑马程序员——java基础 io 流 (提高流的读写效率)BufferedReader,BufferedWriter

2015-03-13 17:09 405 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

io提高流读写效率

io BufferedWriter,BufferedReader第一讲

特有的方法 newLine() 换行的方法 ## BufferedWrite ##

package com.kaka.buffered;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

/**
* 用BufferedWriter写入文件
*
* 流的缓冲去,提高流读写效率
* @author Administrator
*
*/
public class BufferedTest {
public static void main(String[] args) {
BufferedMethod();
}

private static void BufferedMethod() {
// TODO Auto-generated method stub
//字符流对象
FileWriter  fw=null;
//字符流缓冲对象
BufferedWriter  bw=null;
try {
fw=new FileWriter("c:\\demo.txt");

bw=new BufferedWriter(fw);
//要写入内容
bw.write("天赋异禀");
//缓存流专有的换行方法  (\r\n)
bw.newLine();
//再写入一条
bw.write("天纵奇才");
//刷进文件
bw.flush();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//只要关闭缓存流就行
if(bw!=null)
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

```                                         ## BufferedReader ##
**读取文本文件特有的方法     readLine() **

<div class="se-preview-section-delimiter"></div>

```这里写代码片
package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
*  利用缓冲区去读取文件
* BufferedReader对象特有地方法
* @author Administrator
*
*/
public class BufferedReaderTest {

public static void main(String[] args) {
bufferedReaderMethod();
}

private static void bufferedReaderMethod() {
// TODO Auto-generated method stub
//字符读取流对象
FileReader  fr=null;
//利用缓冲流,加粗水管
BufferedReader br=null;
try {
fr=new FileReader("C:\\Documents and Settings\\Administrator" +
"\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

br=new BufferedReader(fr);

//用来接收
String lin=null;

try {
//只要拿到的文本文件部位空,就一直循环
while((lin=br.readLine())!=null){

//一行一行的拿
System.out.println(lin);

}

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

} catch (FileNotFoundException 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();
}
}
}

}
## BufferedReader,BufferedWriter ,Copy文件 ##
## 第三讲 ##
``package com.kaka.buffered;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
*利用BufferedReader  和  BufferedWriter  来 copy文件
*
* @author Administrator
*
*/
public class BufferedReaderCopy {
public static void main(String[] args) {
bufferedCopyMethod();
}

private static void bufferedCopyMethod() {
// TODO Auto-generated method stub
BufferedReader  br=null;
BufferedWriter  bw=null;
try {
br=new  BufferedReader(new FileReader("C:\\Documents and Settings\\Administrator" +
"\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java"));

try {
bw=new BufferedWriter(new FileWriter("d:\\java.txt"));

String str=null;

while((str=br.readLine())!=null){
//写入文件
bw.write(str);
//换行
bw.newLine();
//刷新
bw.flush();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null)
try {

c635
br.close();
if(bw!=null)
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
## 第四讲 自定义BufferedReader  里面的 readLine()和  close() ##


这里写代码片“`

“`这里写代码片package com.kaka.buffered;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

/**

* 利用缓冲区去读取文件

* BufferedReader对象特有地方法

* @author Administrator

*

*/

public class BufferedReaderTest {

public static void main(String[] args) {
bufferedReaderMethod();
}

private static void bufferedReaderMethod() {
// TODO Auto-generated method stub
//字符读取流对象
FileReader  fr=null;
//利用缓冲流,加粗水管
BufferedReader br=null;
try {
fr=new FileReader("C:\\Documents and Settings\\Administrator" +
"\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

br=new BufferedReader(fr);

//用来接收
String lin=null;

try {
//只要拿到的文本文件部位空,就一直循环
while((lin=br.readLine())!=null){

//一行一行的拿
System.out.println(lin);

}

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

} catch (FileNotFoundException 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();
}
}
}


}

## BufferedReader,BufferedWriter ,Copy文件 ##

## 第三讲 ##

“package com.kaka.buffered;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

/**

*利用BufferedReader 和 BufferedWriter 来 copy文件

*

* @author Administrator

*

*/

public class BufferedReaderCopy {

public static void main(String[] args) {

bufferedCopyMethod();

}

private static void bufferedCopyMethod() {
// TODO Auto-generated method stub
BufferedReader  br=null;
BufferedWriter  bw=null;
try {
br=new  BufferedReader(new FileReader("C:\\Documents and Settings\\Administrator" +
"\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java"));

try {
bw=new BufferedWriter(new FileWriter("d:\\java.txt"));

String str=null;

while((str=br.readLine())!=null){
//写入文件
bw.write(str);
//换行
bw.newLine();
//刷新
bw.flush();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null)
try {
br.close();
if(bw!=null)
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


}

## 装饰设计模式 ##

第四讲 自定义BufferedReader 里面的 readLine()和 close()

这个世界sb很多

这里写代码片
package com.kaka.buffered;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

/**

*

* 自定义BufferedReader

*

* @author Administrator

*

*/

public class CustomBufferedReader {

public static void main(String[] args)  {
//字符流
FileReader fr=null;
MyBufferedReader  mbr=null;
try {
fr = new FileReader("C:\\Documents and Settings\\Administrator" +
"\\桌面\\HeiMa\\src\\com\\kaka\\io\\test1.java");

//自定义的缓冲流
mbr=new MyBufferedReader(fr);

String len=null;
while((len=mbr.myreadLine())!=null){
System.out.println(len);
}

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(mbr!=null)
mbr.myClose();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

}

}

MyBufferedReader 这个类就是装饰类

//模拟BufferedReader类 里面 readLine()方法和 close()方法

class MyBufferedReader{

//文件流

public FileReader fr;

//内部类的构造函数

MyBufferedReader(FileReader fr) {

super();

this.fr = fr;

}

//读取  一行  的方法
public String  myreadLine(){
//定义一个字符串容器
StringBuilder  sb=new StringBuilder();

int len=0;

try {
while((len=fr.read())!=-1){
if(len=='\r')
continue;
if(len=='\n')
return sb.toString();
else{
sb.append((char)len);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//不管 有没有\n,只要sb有就必须返回
if(sb.length()!=0)
return  sb.toString();
return null;
}

//关闭的方法
public void myClose() throws IOException{
fr.close();
}


}

## 装饰设计模式 将被增强的对象传给增强的类 ##

对原来类功能的增强 例如:FileReader 的增强类(也就是装饰类) BufferedReader(new FileReader())

毕老师的视频讲解源码

package com.kaka.buffered;

/**

*

* 装饰设计模式

* @author Administrator

*

*/

public class ModelBufferedReader {

public static void main(String[] args) {

Person p=new Person();

// p.feed();

SuperPerson sp=new SuperPerson(p);

sp.superFeed();
}


}

//装饰之前的类

class Person{

//装饰前的方法

public void feed(){

System.out.println(“吃饭”);

}

}

//装饰的类

class SuperPerson{

private Person  p;

public SuperPerson(Person p) {
super();
this.p = p;
}
//增强的吃饭的方法
public void superFeed(){
System.out.println("喝汤");
System.out.println("吃水果");
p.feed();
System.out.println("睡觉");
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐