zoukankan      html  css  js  c++  java
  • 文件拷贝——高淇JAVA300讲笔记之IO和File

    案例一:定义一个拷贝文件的方法

     1 package com.bjsxt.io.byteIO;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 public class CopyFileDemo {
    12 
    13     public static void main(String[] args) {
    14         String src = "E:/xp/test/1.jpg";
    15         String dest = "e:/xp/test/4.jpg";
    16         try {
    17             copyFile(src,dest);
    18         } catch (FileNotFoundException e) {
    19             e.printStackTrace();
    20             System.out.println("文件不存在");
    21         } catch (IOException e) {
    22             e.printStackTrace();
    23             System.out.println("拷贝文件失败|关闭流失败");
    24         }
    25     }
    26     
    27     /**
    28      * 文件的拷贝
    29      * @param 源文件路径
    30      * @param 目录文件路径
    31      * @throws FileNotFoundException,IOException
    32      * @return 
    33      */
    34     public static void copyFile(String srcPath,String destPath) throws FileNotFoundException,IOException {
    35         //1、建立联系 源(存在且为文件) + 目的地(文件可以不存在)
    36         File src = new File(srcPath);
    37         File dest = new File(destPath);
    38         if(!src.isFile()) {  //不是文件或者为null
    39             System.out.println("只能拷贝文件");
    40             throw new IOException("只能拷贝文件");
    41         }
    42         //2、选择流
    43         InputStream is = new FileInputStream(src);
    44         OutputStream os = new FileOutputStream(dest);
    45         //3、文件拷贝 循环+读取+写出
    46         byte[] flush = new byte[1024];
    47         int len = 0;
    48         //读取
    49         while(-1!=(len=is.read(flush))) {
    50             //写出
    51             os.write(flush, 0, len);
    52         }
    53         os.flush();  //强制刷出
    54         
    55         //关闭流(先打开的后关闭)
    56         os.close();
    57         is.close();
    58     }
    59 }

    案例二:把拷贝文件的方法写进一个工具类里,并重载了一遍,参数既可以传路径,也可以传File对象

     1 package com.bjsxt.io.byteIO;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 /**
    12  * 文件造作
    13  * 1、拷贝
    14  *
    15  */
    16 public class FileUtil {
    17     /**
    18      * 文件的拷贝
    19      * @param 源文件路径
    20      * @param 目录文件路径
    21      * @throws FileNotFoundException,IOException
    22      * @return 
    23      */
    24     public static void copyFile(String srcPath,String destPath) throws FileNotFoundException,IOException {
    25         //1、建立联系 源(存在且为文件) + 目的地(文件可以不存在)
    26         copyFile(new File(srcPath),new File(destPath));
    27     }
    28     /**
    29      * 文件的拷贝
    30      * @param 源文件File对象
    31      * @param 目录文件File对象
    32      * @throws FileNotFoundException,IOException
    33      * @return 
    34      */
    35     public static void copyFile(File src,File dest) throws FileNotFoundException,IOException {
    36         if(!src.isFile()) {  //不是文件或者为null
    37             System.out.println("只能拷贝文件");
    38             throw new IOException("只能拷贝文件");
    39         }
    40         //2、选择流
    41         InputStream is = new FileInputStream(src);
    42         OutputStream os = new FileOutputStream(dest);
    43         //3、文件拷贝 循环+读取+写出
    44         byte[] flush = new byte[1024];
    45         int len = 0;
    46         //读取
    47         while(-1!=(len=is.read(flush))) {
    48             //写出
    49             os.write(flush, 0, len);
    50         }
    51         os.flush();  //强制刷出
    52         
    53         //关闭流(先打开的后关闭)
    54         os.close();
    55         is.close();
    56     }
    57     
    58     
    59 }
  • 相关阅读:
    oracle角色、权限和用户
    轻松解决oracle11g 空表不能exp导出的问题
    oracle 11g杀掉锁的sql
    oracle创建表空间
    js 读取xml文件
    oracle decode函数使用方
    oracle的触发器的实战使用
    oracle获取日期的数字格式,24小时制
    oracle判断表中的某个字段是否为数字trim+translate函数或regexp_like函数
    java String字符串操作 字符串加密等
  • 原文地址:https://www.cnblogs.com/swimminglover/p/8433559.html
Copyright © 2011-2022 走看看