java实现文件复制功能

      Java的焦点库java.io供给了周全的IO接口。包罗:文件读写、尺度设备输出等。Java中IO是以流为根本进行输入输出的,所稀有据被串行化写入输出流,或者从输入流读入。

工具/原料

  • 电脑
  • intellij IDEA

方式/步骤

  1. 1

    第一步调:建立一个java项目。

    1、file--》new--》project...或者Model...打开建立窗口

    2、输入项目名称“copyFile”--》finish完当作

    3、项目成果如下所示:

  2. 2

    第二步调:利用java的FileStreams复制。

    特点是对于只标的目的的文件若是不存在则直接建立,若是存在直接笼盖

    完整代码如下所示:

    引入架包:

    import java.io.*;

    import java.nio.channels.FileChannel;

    public static void testFileStreams(){    

    FileInputStream fls = null;//建立文件输入    

    FileOutputStream fos = null;

    // 建立文件输出流    

    try {        

    fls = new FileInputStream("E:/图片/捉妖记.jpg");        

    fos = new FileOutputStream("E:/file/捉妖记.jpg");    

    } catch (FileNotFoundException e) {        

    e.printStackTrace();    

    }    

    // 边输入边输出(筹办数组和temp)    

    byte[] bytes = new byte[1024];    

    //以1KB的速度    

    int temp = 0;    

    try {        

    //轮回输入        

    while((temp=fls.read(bytes)) != -1){            

    try {                

    //写入输出                

    fos.write(bytes,0,temp);            

    } catch (IOException e) {                

    e.printStackTrace();            

    }        

    }        

    //刷新输出流        

    fos.flush();        

    // 封闭输入输出流        

    fls.close();        

    fos.close();    

    } catch (IOException e) {        

    e.printStackTrace();    

    }

    }

  3. 3

    第三步调:利用Java的FileChannel复制。

    FileChannel的实例现实上仍是FileStreams,不外对其进行了包装机能上更高一下,也加倍便利一点。

    代码如下:

    引入架包:

    import java.io.*;

    import java.nio.channels.FileChannel;

    public static void testFileChannel(){    

    File inFile = new File("E:/图片/捉妖记.jpg");    

    File outFile = new File("E:/file/捉妖记.jpg");    

    FileChannel inputChannel = null;    

    FileChannel outputChannel = null;    t

    ry {        

    inputChannel = new FileInputStream(inFile).getChannel();        

    outputChannel = new FileOutputStream(outFile).getChannel();        

    outputChannel.transferFrom(inputChannel, 0, inputChannel.size());   

    } catch (FileNotFoundException e) {        

    e.printStackTrace();    

    } catch (IOException e) {        

    e.printStackTrace();    

    } finally {        

    try {            

    inputChannel.close();       

     } catch (IOException e) {            

    e.printStackTrace();        

    }        

    try {            

    outputChannel.close();        

    } catch (IOException e) {            

    e.printStackTrace();        

    }    

    }}

  4. 4

    第四步调:利用Apache的文件东西类FileUtils。

    这个利用加倍简单,可是需要添加tomcat的架包依靠commons-io.jar。

    public static void main(String[] args) {

    File inFile = new File("E:/图片/捉妖记.jpg");

    File outFile = new File("E:/file/捉妖记.jpg");

    try {

    org.apache.commons.io.FileUtils.copyFile(inFile, outFile);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

  5. 5

    第五步调:利用jdk供给的Files

    引入架包:

    import java.io.*;

    import java.nio.file.Files;

    这个需要jdk1.7以上版本才能撑持

    public static void main(String[] args) {    

    File inFile = new File("E:/图片/捉妖记.jpg");    

    File outFile = new File("E:/file/捉妖记.jpg");    

    try {        

    Files.copy(inFile.toPath(), outFile.toPath());    

    } catch (IOException e) {        

    e.printStackTrace();    

    }}

注重事项

  • jdk 1.8 IDEA2018.2.2
  • tomcat的commons-io.jar版本不是出格限制tomcat6以上都应该有
  • 发表于 2019-04-19 22:31
  • 阅读 ( 152 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论