黑马程序员技术交流社区
标题:
使用字符流或字节流拷贝文件
[打印本页]
作者:
nanfp
时间:
2015-7-5 23:48
标题:
使用字符流或字节流拷贝文件
本帖最后由 nanfp 于 2015-7-6 00:02 编辑
1.字符流拷贝纯文本文件。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//readLine()只返回换行符之前的值,不返回换行符
public class MyBuffer{
public static void main(String[] args) {
BufferedReader bufr=null;
BufferedWriter bufw=null;
try {
//定义输入输出字符流
bufr=new BufferedReader(new FileReader("1.txt"));
bufw=new BufferedWriter(new FileWriter("2.txt"));
String line=null;
while((line=bufr.readLine())!=null){
//写入文件
bufw.write(line);
//缓冲区流要刷新
bufw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally{
//关闭输入输出流
if(bufr!=null){
try {
//关闭缓冲区流,其实就是关闭其中的流对象,所以流对象就不用再关闭了
bufr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bufw!=null){
try {
bufw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
2.字节流可以
处理所有类型的数据,如
jpg
、
avi
、
mp3
、
wav,字节流
拷贝
图片。
mport java.io.FileInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class MyStream {
public static void main(String[] args) {
FileOutputStream fos=null;
FileInputStream fis=null;
try {
//定义输入输出字节流
fos=new FileOutputStream("D:\\2.jpg");
fis=new FileInputStream("D:\\1.jpg");
byte[] b=new byte[1024];
int len=0;
//读取字节
while((len=fis.read())!=-1){
//写入文件
fos.write(b,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
//关闭输入输出流
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2