A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

好像经常看到有面试题分享把文件从某盘拷到某盘,不知道是不是字符流这个- -。

总之,稳扎稳打,步步为营~!



  1. /**
  2. *
  3. */
  4. package day18_IOStream;

  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;

  8. /**
  9. * @author always
  10. *
  11. */
  12. public class CopyTest {

  13.         /**
  14.          * 将C盘一个文件复制到D盘
  15.          */
  16.         public static void main(String[] args) throws IOException{
  17.                 // TODO Auto-generated method stub
  18. //                copyFileByChar();
  19.                 copyFileByBuffer();

  20.         }

  21.         public static void copyFileByChar() {
  22.                
  23.                 FileWriter fw = null;
  24.                
  25.                 FileReader fr = null;
  26.                
  27.                 try {
  28.                         /*创建目的地*/
  29.                         fw = new FileWriter("d:\\CopyFile.txt");
  30.                         /*与已有文件关联*/
  31.                         fr = new FileReader("C:\\Intel\\Logs\\IntelGFX.log");
  32.                         int ch = 0;
  33.                         while((ch = fr.read()) != -1) {
  34.                                 fw.write(ch);
  35.                         }
  36.                 } catch(IOException e) {
  37.                         throw new RuntimeException("读写失败");
  38.                 }
  39.                
  40.                 /*关闭流资源*/
  41.                 finally {
  42.                         if(fw != null)
  43.                                 try {
  44.                                         fw.close();
  45.                                 } catch(IOException e) {
  46.                                         System.out.println(e);
  47.                                 }
  48.                         if(fr != null)
  49.                                 try{
  50.                                         fr.close();
  51.                                 } catch(IOException e) {
  52.                                         System.out.println(e);
  53.                                 }
  54.                 }
  55.         }

  56.         public static void copyFileByBuffer() throws IOException{
  57.                 /*创建待写入目标文件,如果文件已存在,则续写*/
  58.                 FileWriter fw = new FileWriter("d:\\CopyFile.txt",true);
  59.                
  60.                 /*创建读取流对象,与待读取文件关联*/
  61.                 FileReader fr = new FileReader("C:\\Intel\\Logs\\IntelGFX.log");
  62.                
  63.                 char[] buf = new char[1024];
  64.                 int len = 0;
  65.                
  66.                 /*通过把字符读取到数组把字符写入到.txt文件*/
  67.                 while((len = fr.read(buf)) != -1) {
  68.                         fw.write(buf, 0, len);
  69.                 }
  70.                
  71.                 /*关闭流资源*/
  72.                 fr.close();
  73.                 fw.close();
  74.         }
  75. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马