• 文件操作


    复制:

    /**
         * 图片复制
         * @param source  xx/a.png
         * @param target  xx/b.png
         * @throws IOException
         */
        public static void copyPicture(String source,String target) throws IOException{
            File file = new File(target);
            if(!file.exists()){
                file.getParentFile().mkdirs();
            }
            file.createNewFile();
    
            //创建流对象
            DataInputStream dis=new DataInputStream(new FileInputStream(source));
            DataOutputStream dos=new DataOutputStream(new FileOutputStream(target));
            int temp;
            //读写数据
            while((temp=dis.read())!=-1){//读数据
                dos.write(temp);
            }
            //关闭流
            dis.close();
            dos.close();
        }

    压缩 zip 

    package zip;
    
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    // Used to zip a file
    public class FileZipper {
        private static final int BUFFER = 512;
        
        public boolean compressFilesToZip(String[] files,String zipfile) {
            return rugularZip(files,zipfile);
        }
        
        private boolean rugularZip(String[] fromFiles,String toFile) {
            File zipFile=new File(toFile);
            byte[] buffer=new byte[BUFFER];
            int readLen=0;
            
            try {
                ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(zipFile)) ;
    
                int index=0;
                for(String file:fromFiles) {
                    File fileWillZip=new File(file);
                    
                    if(fileWillZip.exists()) {
                        InputStream inputStream=new BufferedInputStream(new FileInputStream(fileWillZip));
                        String entryName="#"+index+"_"+fileWillZip.getName();// entryName should be a valid filename,no path seperater allowed
                        zipOut.putNextEntry(new ZipEntry(entryName));
        
                        while((readLen=inputStream.read(buffer,0,BUFFER))!=-1) {
                            zipOut.write(buffer,0,readLen);
                        }
                        inputStream.close();    
                        
                        index++;
                    }
                }
    
                zipOut.close();
            }catch(Exception e) {
                e.printStackTrace();
                return false;
            }
            
            return true;
        }
        
        public static void main(String[] args) {
            String[] files= {"D:\wallpaper\5760666873360998521.jpg",
                             "D:\wallpaper\luda1.jpg",
                             "D:\wallpaper\luda2.jpg",
                             "D:\wallpaper\luda3.jpg",
                             "D:\wallpaper\luda4.jpg",
                             "D:\wallpaper\sheeps.jpg"};
            String zipfile="D:\wallpaper\result.zip";
            
            FileZipper fz=new FileZipper();
            fz.compressFilesToZip(files, zipfile);
        }
    }

    此文进阶请见:https://www.cnblogs.com/xiandedanteng/p/12155957.html

    参考: https://www.cnblogs.com/xiandedanteng/p/12155471.html

  • 相关阅读:
    安装了windows mobile 5.0 pocket pc SDK
    落户这里
    NOIP 2021 游记
    log4net重复记日志
    Eclipse中properties文件中文显示编码、乱码问题
    查找包下已经实施的增强
    vs2010 编译 Ogre 1.8 源码
    Ogre 设计模式之Singleton
    23种设计模式的解析与C++实现及源码打包下载
    vs2010 编译 SALVIA源码
  • 原文地址:https://www.cnblogs.com/yrjns/p/12788181.html
Copyright © 2020-2023  润新知