黑马程序员技术交流社区

标题: 使用字符流或字节流拷贝文件 [打印本页]

作者: nanfp    时间: 2015-7-5 23:48
标题: 使用字符流或字节流拷贝文件
本帖最后由 nanfp 于 2015-7-6 00:02 编辑

1.字符流拷贝纯文本文件。
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. //readLine()只返回换行符之前的值,不返回换行符
  7. public class MyBuffer{       
  8.         public static void main(String[] args) {       

  9.         BufferedReader bufr=null;       
  10.         BufferedWriter bufw=null;       
  11.         try {                       
  12. //定义输入输出字符流               
  13.         bufr=new BufferedReader(new FileReader("1.txt"));               
  14.         bufw=new BufferedWriter(new FileWriter("2.txt"));       
  15.                 String line=null;               
  16.                         while((line=bufr.readLine())!=null){       
  17.                         //写入文件               
  18.                 bufw.write(line);                       
  19.         //缓冲区流要刷新                       
  20.         bufw.flush();               
  21.         }       
  22.         } catch (IOException e) {
  23.                         e.printStackTrace();       
  24.         }finally{               
  25.         //关闭输入输出流               
  26.         if(bufr!=null){                       
  27.         try {                               
  28.         //关闭缓冲区流,其实就是关闭其中的流对象,所以流对象就不用再关闭了       
  29.                 bufr.close();       
  30.                         } catch (IOException e) {
  31.                                         e.printStackTrace();               
  32.                 }               
  33.         }                       
  34. if(bufw!=null){       
  35.                         try {       
  36.                                 bufw.close();               
  37.                 } catch (IOException e) {       
  38.                                 e.printStackTrace();       
  39.                                 }               
  40.                         }       
  41. }       
  42.         }
复制代码

2.字节流可以处理所有类型的数据,如jpgavimp3wav,字节流拷贝图片。
  1. mport java.io.FileInputStream;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. public class MyStream {
  6.         public static void main(String[] args) {
  7.                 FileOutputStream fos=null;               
  8.                 FileInputStream fis=null;               
  9.                 try {               
  10.                         //定义输入输出字节流       
  11.                         fos=new FileOutputStream("D:\\2.jpg");       
  12.                         fis=new FileInputStream("D:\\1.jpg");       
  13.                         byte[] b=new byte[1024];               
  14.                         int len=0;                       
  15.                         //读取字节
  16.                         while((len=fis.read())!=-1){
  17.                                 //写入文件                       
  18.                                 fos.write(b,0,len);       
  19.                                 }               
  20.                         } catch (IOException e) {
  21.                                 e.printStackTrace();
  22.                                 }finally{               
  23.                                         //关闭输入输出流       
  24.                                         if(fis!=null){       
  25.                                                 try {               
  26.                                                         fis.close();
  27.                                                         } catch (IOException e) {
  28.                                                                 e.printStackTrace();       
  29.                                                                 }               
  30.                                                 }                       
  31.                                         if(fos!=null){       
  32.                                                 try {               
  33.                                                         fos.close();       
  34.                                                         } catch (IOException e) {       
  35.                                                                 e.printStackTrace();
  36.                                                                 }       
  37.                                                 }       
  38.                                         }
  39.                 }
  40.         }
  41.                
复制代码














欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2