利用FileChannel复制文件 Copy one File to Another【三种方法】

  
  
  
  
  1. import java.io.FileInputStream;  
  2. import java.io.FileOutputStream;  
  3. import java.io.IOException;  
  4. import java.nio.channels.FileChannel;  
  5. /**  
  6. * 复制文件  
  7. * @author Administrator  
  8. *  
  9. */  
  10. public class CopyFile {  
  11.  
  12. public static void main(String[] args) {  
  13. try {  
  14. // Create channel on the source  
  15. FileChannel srcChannel = new FileInputStream("D:\\My Documents\\08-100附件二广州社保培训资料.doc")  
  16. .getChannel();  
  17. // Create channel on the destination  
  18. FileChannel dstChannel = new FileOutputStream("D:\\My Documents\\dstFilename.doc")  
  19. .getChannel();  
  20. // Copy file contents from source to destination  
  21. dstChannel.transferFrom(srcChannel, 0, srcChannel.size());  
  22. // Close the channels  
  23. srcChannel.close();  
  24. dstChannel.close();  
  25. } catch (IOException e) {  
  26. e.printStackTrace();  
  27. }  
  28.  
  29. }  
  30. }  
  31.  
  32. 再添两种方法:  
  33.  
  34. import java.io.BufferedInputStream;  
  35. import java.io.BufferedOutputStream;  
  36. import java.io.BufferedReader;  
  37. import java.io.FileInputStream;  
  38. import java.io.FileOutputStream;  
  39. import java.io.FileReader;  
  40. import java.io.FileWriter;  
  41. import java.io.PrintWriter;  
  42.  
  43. public class FileCopyTest {  
  44. public static void main(String[] args) {  
  45. //方法一  
  46. try {  
  47. FileReader fr = new FileReader("c:\\updatedatfix.log");  
  48. BufferedReader br = new BufferedReader(fr);  
  49. FileWriter fw = new FileWriter("c:\\temp2.txt");  
  50. PrintWriter pw = new PrintWriter(fw, true);  
  51. String line;  
  52. while ((line = br.readLine()) != null) {  
  53. pw.println(line);  
  54. }  
  55. } catch (Exception e) {  
  56. e.printStackTrace();  
  57. }  
  58.  
  59. //方法二  
  60.  
  61. try {  
  62. BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c:\\updatedatfix.log"));  
  63. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("c:\\tt.log"));  
  64. byte[] buff = new byte[1024];  
  65. int len =0;  
  66. while((len=bis.read(buff,0,1024))!=-1){  
  67. bos.write(buff, 0, len);  
  68. }  
  69. bis.close();  
  70. bos.close();  
  71. } catch (Exception e) {  
  72. e.printStackTrace();  
  73. }  
  74. }  

 

你可能感兴趣的:(复制,文件,FileChannel,利用)