一、字节缓冲流:输入流BufferedInputStream 、输出流BufferedOutputStream
构造方法
new BufferedInputStream(new FileInputStream());
字节缓冲流没有新增方法,可以多态调用父类方法。
步骤
- 选择流
- 读入写出
- 关闭
实例
public static void main(String[] args) {
//1.选择流
InputStream is=null;
OutputStream os=null;
try {
is=new BufferedInputStream(new FileInputStream("D:/hehe.txt"));
os=new BufferedOutputStream(new FileOutputStream("D:/H.txt"));
//2.读入写出
byte[] car=new byte[1024];
int len=-1;
while((len=is.read(car))!=-1){
os.write(car, 0, len);
}
//3.刷出
os.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(os!=null){
os.close();
}
if(is!=null){
is.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
二、字符缓冲流:输入流BufferedReader、输出流BufferedWriter
构造方法
new BufferedReader(new FileReader(File));
新增方法
String readLine()
读取一个文本行。 (不包含终止符,读不到文本返回null)
步骤
- 选择流
- 读入写出
- 关闭
实例
public static void main(String[] args) {
//1.选择流
BufferedReader is=null;
BufferedWriter os=null;
try {
is=new BufferedReader(new FileReader("D:/hehe.txt"));
os=new BufferedWriter(new FileWriter("D:/B.txt"));
//2.读入写出
/*char[] car=new char[1024];
int len=-1;
while((len=is.read(car))!=-1){
os.write(car, 0, len);
}*/
//新增方法,每次读取一行
String str=null;
while((str=is.readLine())!=null){
os.write(str);
os.newLine();
}
//3.刷出
os.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(os!=null){
os.close();
}
if(is!=null){
is.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}