项目中运用到的对文件的操作

/**
     * 获取本地文件的数据
     * 
     * @param file
     * @return
     */
    public static String getLocalDataByFile(File fileName) {

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        FileInputStream in;
        try {
            in = new FileInputStream(fileName);
            byte buf[] = new byte[in.available()];
            in.read(buf);
            out.write(buf);
            in.close();
            out.close();

        } catch (IOException e) {

        }

        return out.toString();
    }

/**
     * 读取字节文件
     * 
     * @param pathName
     * @return
     */
    public static byte[] getByteForFile(File inFile) throws IOException{
        FileInputStream in= new FileInputStream(inFile);
        byte[] buf = new byte[in.available()];
        in.read(buf);

        in.close();

        return buf;
    }

    /**
     * 下载文件到本地路径file中
     * 
     * @param file
     *            保存的路径
     * @param str
     *            要保存的字符串
     * @return
     */
    public static boolean downFile(File fileName, String str) {
        if (!fileName.getParentFile().exists()) {
            fileName.getParentFile().mkdirs();
        }

        boolean res = true;
        byte[] content = str.getBytes();
        try {
            FileOutputStream out = new FileOutputStream(fileName);
            out.write(content);
            out.close();
        } catch (IOException e) {
            res = false;
            e.printStackTrace();
        }

        return res;
    }
/**
     * 删除整个目录
     * @param file
     * @return
     */
    public static void deleteFile(File file){

        if(file.exists()){
            if(file.listFiles()!=null){
                for(File f:file.listFiles()){
                    f.delete();
                }
            }
            file.delete();
        }

    }

    /**
     * 删除目录中的文件
     * @param path
     */
    public static void deleteDirectory(String path){
        File dir=new File(path);
        if(dir.exists()){
            if(dir.listFiles()!=null){
                for(File f:dir.listFiles()){
                    if(f.isDirectory()){
                        deleteFile(f);
                    }else if(f.isFile())
                        f.delete();
                }
            }

            dir.delete();
        }

    }
    /**
     * 对一个文件进行Base64编码
     * @param file
     * @return
     */
    public static String encodeToString(File file){
        StringBuffer sb=new StringBuffer();
        if(file.exists()){
            FileInputStream is=null;
            byte[] buffer=new byte[1024];
            try {
                is=new FileInputStream(file);
                int c=0;
                while((c=is.read(buffer))!=-1){
                    sb.append(Base64.encodeToString(buffer, 0, c, Base64.DEFAULT));
                }

                is.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return sb.toString();
    }

    /**
     * 删除图谱文件
     */
    public static void deleteEcgFile(File file){
        if(file!=null && file.exists()){
            File parentFile=file.getParentFile();
            file.delete();
            if(parentFile!=null && parentFile.listFiles().length <= 0){//当目录中不存在子文件时,删除目录
                parentFile.delete();
            }

        }

    }

    /**
     * 获取一个目录中最长时间没有被改动的文件
     * @param file
     */
    public static File findOldFile(File file){
        File oldFile = file.listFiles()[0];
        long modifiedTime = file.listFiles()[0].lastModified();
        for(File f:file.listFiles()){//找出修改时间最小的文件
            if(f.lastModified() < modifiedTime){
                oldFile=f;
            }
            modifiedTime=f.lastModified();
        }

        return oldFile;
    }

    /**
     * 删除一个目录中的所有文件
     * @param dir
     */
    public static void deleteFileList(File dir){
        if(dir.exists()&&dir.listFiles().length>0){
            for(File f:dir.listFiles()){
                f.delete();
            }
        }
    }
 /** 移动文件
     * @param src
     * @param dest
     */
    public static boolean moveFile(String src, String dest) {
        File srcFolder = new File(src);
        File destFolder = new File(dest);
        if(!destFolder.exists())
            destFolder.mkdirs();
        File newFile = new File(destFolder.getAbsoluteFile() + "/" + srcFolder.getName());
        boolean res = srcFolder.renameTo(newFile);
        return res;
    }

    public static boolean saveFile(String text, String path){
        File file = new File(path);
        if(!file.getParentFile().exists())
            file.getParentFile().mkdirs();
        FileOutputStream out = null;
        boolean result = false;
        try {
            out = new FileOutputStream(file);
            out.write(text.getBytes());
            result = true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(out != null)
                    out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        return result;
    }
    /**
     * 获取一个文本
     * @param inputStream
     * @return
     */
    public static String readTextFile(InputStream inputStream) {

        BufferedReader reader = null;
        StringBuffer sb = new StringBuffer();
        try {

            reader = new BufferedReader(new InputStreamReader(inputStream, "GBK"));

            String s ="";
            while((s = reader.readLine()) != null){
                sb.append(s + "\r\n");
            }


            inputStream.close();
            reader.close();

        } catch (IOException e) {
            LogHelper.saveExceptionStackInfo(e);
        }

        return sb.toString();
    }

    /**
     * 截取字节数组
     * @param src
     * @param begin
     * @param count
     * @return
     */
    public static byte[] subBytes(byte[] src, int begin, int count) {
        byte[] bs = new byte[count];
        for (int i = begin; i < begin + count; i++)
            bs[i - begin] = src[i];
        return bs;
    }

    /** 
     * 文件转化为字节数组 
     *  
     * @param file 
     * @return 
     */  
    public static byte[] getBytesFromFile(File file) {
        byte[] ret = null;
        try {
            if (file == null) {
                // log.error("helper:the file is null!");
                return null;
            }
            FileInputStream in = new FileInputStream(file);
            ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
            byte[] b = new byte[4096];
            int n;
            while ((n = in.read(b)) != -1) {
                out.write(b, 0, n);
            }
            in.close();
            out.close();
            ret = out.toByteArray();
        } catch (IOException e) {
            // log.error("helper:get bytes from file process error!");
            e.printStackTrace();
        }
        return ret;
    }  

    /**
     * 把字节数组保存为一个文件
     * 
     * @param b
     * @param outputFile
     * @return
     */
    public static File getFileFromBytes(byte[] b, String outputFile) {
        File ret = null;
        BufferedOutputStream stream = null;
        try {
            ret = new File(outputFile);
            FileOutputStream fstream = new FileOutputStream(ret);
            stream = new BufferedOutputStream(fstream);
            stream.write(b);
        } catch (Exception e) {
            // log.error("helper:get file from byte process error!");
            e.printStackTrace();
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException e) {
                    // log.error("helper:get file from byte process error!");
                    e.printStackTrace();
                }
            }
        }
        return ret;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值