zoukankan      html  css  js  c++  java
  • java 文件拷贝

    需求:源和目标!

    那么我们需要源文件和目标文件!

    构建管道的时候就需要两个:输出流和输入流管道!

    Eg:

    package july7file;

    //java7开始的自动关闭资源

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    public class Demo8 {

        public static void main(String[] args) throws IOException {

            File src = new File("E:/自荐信.doc");

            File tar = new File("E:/自荐信1.doc");

            copy(src, tar);

            System.out.println("Well done !");

        }

        public static void copy(File src, File tar) throws IOException {

            try (InputStream is = new FileInputStream(src);

                    OutputStream os = new FileOutputStream(tar);) {

                byte[] b = new byte[1024];

                int len;

                while ((len = is.read(b)) != -1) {

                    os.write(b);

                }

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

    题目:复制图片!

    package july7file;

    /**

     * 文件的复制!对于本题而言,因为是图片,所以要想读出来,必须使用字节流!

     * 字符流必须关闭资源,而字节流可以不关闭资源!但是还是建议全部的关闭,因为也不会出错,这是关闭资源的习惯!

     * 另外:最常用的是字节流,因为字节流在内存中不需要缓冲区,图片,mp3等都是字节流!但是对于文字的话还是字符流比较好;

     * 因为字符流可以避免在字节流操作文字时出现的乱码现象(正好读取到了自定义缓冲区的分割处);

     */

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.InputStream;

    import java.io.OutputStream;

    public class Demo7 {

        public static void main(String[] args) throws Exception {

            File src = new File("D:/java.jpg");

           

            File tar = new File("D:/meinv.jpg");

           

            copy(src,tar);

            System.out.println("复制完成!");

        }

        public static void copy(File src,File tar) throws Exception{

    /*      Reader r = new FileReader(src);

            Writer w = new FileWriter(tar);*/

            /*if(!src.exists()){

                throw new Exception("对不起,源文件不存在!");

            }*/

            InputStream in = new FileInputStream(src);

            OutputStream os = new FileOutputStream(tar);

           

            byte []c = new byte[1024];

            int len;

            while((len = in.read(c)) != -1){

                os.write(c);

            }

           

        /*  w.close();

            r.close();*/

        }

    }

    我的总结:对于图片的复制,可以使用字符流,但是这样的话文件可以复制成功但是无法读取!

  • 相关阅读:
    SpringMvc执行流程
    Lock wait timeout exceeded; try restarting transaction解决方法
    MySQL删除复杂的重复数据的解决方案(一条数据项中包含多个值的情况)
    数据移植时递归运算查询部门及其下级所有部门的问题
    IDEA常用插件
    mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题
    时间日期操作
    spring项目中使用MD5加密方式
    idea如何调出仪表盘
    scanf使用过程中的技巧与坑位
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11136217.html
Copyright © 2011-2022 走看看