• 一个常用的文件操作类


    package com...utils.file;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.Reader;
    import java.io.Writer;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import wfc.service.database.Sequence;
    
    public class ReadAndWriteFile {
        
        private static JSONArray jsonArray = new JSONArray();
        
        /**
         * 遍历文件夹所有的文件 获取文件名
         * @param filepath
         * @return
         * @throws FileNotFoundException
         */
        public static JSONArray readfilename(String filepath) throws FileNotFoundException {
        
            try {
                File file = new File(filepath);
                if (!file.isDirectory()) {
                    System.out.println("文件");
                    System.out.println("path=" + file.getPath());
                    System.out.println("absolutepath=" + file.getAbsolutePath());
                    System.out.println("name=" + file.getName());
    
                } else if (file.isDirectory()) {//是文件夹
                    String[] filelist = file.list();
                    //
                    int filelength = filelist.length;
                    for (int i = 0; i < filelength; i++) {
                        JSONObject json = new JSONObject();
                        File readfile = new File(filepath + "\" + filelist[i]);
                        if (!readfile.isDirectory()) {
                            String filename = readfile.getName();
                            json.put("name", filename);
                            jsonArray.add(json);
                            //是文件夹继续遍历
                        } else if (readfile.isDirectory()) {
                            readfilename(filepath + "\" + filelist[i]);
                        }
                    }
                }
            } catch (FileNotFoundException e) {
                System.out.println("readfilename()   Exception:" + e.getMessage());
            }
            return jsonArray;
        }
        
        /**
         * 删除文件
         * @param delpath
         */
        public static void deleteFile(String delpath) {
            try {
                File file = new File(delpath);
                if (file.exists()) {
                    file.delete();
                }
            } catch (Exception e) {
                System.out.println("deletefile()  Exception:" + e.getMessage());
            }
        }
    
        /**
         * 更改文件名
         * @param filePath
         * @param oldFileName
         * @param newFilename
         */
        public static void renameFile(String filePath, String oldFileName, String newFilename) {
            try {
                File file = new File(filePath + oldFileName);
                if (file.exists()) {
                    file.renameTo(new File(filePath + newFilename));
                }
            } catch (Exception e) {
                System.out.println("renamefile()  Exception:" + e.getMessage());
            }
        }
    
         /**
          * 判断文件夹下是否存在文件
          * @param filepath
          * @return
          */
        public static boolean hasFile(String filepath) {
             File start = new File(filepath);
             String[] filePath = start.list();//获取该文件夹下的所有文件以及目录的名字
             if(filePath.length>0){
                 return true;
             }
             return false;
        }
        
        
        /**
         * 文件的拷贝(单个)
         * @param sourcePath
         * @param newPath
         * @return
         */
        public static boolean copyFile(String sourcePath, String newPath) {
            boolean flag = false;
            File readfile = new File(sourcePath);
            File newFile = new File(newPath);
            if(!readfile.exists()) {
                return flag;
            }
            BufferedWriter bufferedWriter = null;
            Writer writer = null;
            FileOutputStream fileOutputStream = null;
            BufferedReader bufferedReader = null;
            InputStream  in =null;
            try{
                in = new FileInputStream(readfile);
                fileOutputStream = new FileOutputStream(newFile, true);
                writer = new OutputStreamWriter(fileOutputStream,"GBK");
                bufferedWriter = new BufferedWriter(writer);
                bufferedReader = new BufferedReader(new InputStreamReader(in,"GBK"));
                
                String line = null;
                while((line = bufferedReader.readLine()) != null){
                    bufferedWriter.write(line);
                    bufferedWriter.newLine();
                    bufferedWriter.flush();
                }
                flag = true;    
            } catch(IOException e) {
                flag = false;
                e.printStackTrace();
            } finally {
                try {
                    if(bufferedWriter != null){
                        bufferedWriter.close();
                    }
                    if(bufferedReader != null){
                        bufferedReader.close();
                    }
                    if(writer != null){
                        writer.close();
                    }
                    if(fileOutputStream != null){
                        fileOutputStream.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return flag;
        }
        
        
        /**
         * 文件复制(多个)
         * @param sourcePathDir
         * @param newPathDir
         */
         public static void copyDir(String sourcePathDir, String newPathDir) {
                File start = new File(sourcePathDir);
                File end = new File(newPathDir);
                String[] filePath = start.list();//获取该文件夹下的所有文件以及目录的名字
                if(!end.exists()) {
                    end.mkdir();
                }
                boolean flag = false;
                for(String temp : filePath) {
                    //添加满足情况的条件
                    if(new File(sourcePathDir + temp).isDirectory()){
                        System.out.println("文件:"+temp+" 是文件夹");
                        return;
                    }
                    if(new File(sourcePathDir + temp ).isFile()&& temp.endsWith(".js")) {
                        //为文件则进行拷贝
                        flag = copyFile(sourcePathDir + temp, newPathDir + temp );
                    }
                    String Str="";
                    if(flag){
                        Str = readJsonFile(sourcePathDir + temp);
                        temp = temp.substring(0,temp.indexOf("."));
                        writeJsonString(newPathDir +  temp +"--copy.js", Str);
                        //删除源文件
                        deleteFile(sourcePathDir  + temp+".js");
                        deleteFile(newPathDir  + temp+".js");
                        System.out.println("文件:" + temp + ",复制成功!");
                    }else{
                        System.out.println("文件:" + temp + ",复制失败!");
                    }
                }
            }
         
         public static String readJsonFile(String fileName) {
                String jsonStr = "";
                try {
                    File jsonFile = new File(fileName);
                    if (!jsonFile.exists()) {
                        return "";
                    }
                    Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "GBK");
                    int ch = 0;
                    StringBuffer sb = new StringBuffer();
                    while ((ch = reader.read()) != -1) {
                        sb.append((char) ch);
                    }
                    reader.close();
                    jsonStr = sb.toString();
                    return jsonStr;
                } catch (IOException e) {
                    e.printStackTrace();
                    return "";
                }
            }
         
            public static void writeJsonString(String filepath, String jsonObject) {
                try {
                    File file = new File(filepath);
                    if (!file.exists())// 判断文件是否存在,若不存在则新建
                    {
                        file.createNewFile();
                    }
                    FileOutputStream fileOutputStream = new FileOutputStream(file);// 实例化FileOutputStream
                    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "GBK");// 将字符流转换为字节流
                    BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);// 创建字符缓冲输出流对象
                    String jsonString = jsonObject.toString();// 将jsonObject数组转化为字符串
                    bufferedWriter.write(jsonString);// 将格式化的jsonarray字符串写入文件
                    bufferedWriter.flush();// 清空缓冲区,强制输出数据
                    bufferedWriter.close();// 关闭输出流
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
         
         
         public static void writeJsonString(String filepath,String oauthId, JSONArray jsonArray) throws IOException {
                Date date = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
                String dateString = sdf.format(date);
                String code = getSequenceCode(dateString);
                File file = new File(filepath + oauthId+"-"+dateString + code + ".json");
                if (!file.exists())// 判断文件是否存在,若不存在则新建
                {
                    file.createNewFile();
                }
                FileOutputStream fileOutputStream = new FileOutputStream(file);// 实例化FileOutputStream
                OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "GBK");// 将字符流转换为字节流
                BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);// 创建字符缓冲输出流对象
                String jsonString = jsonArray.toString();// 将jsonarray数组转化为字符串
                bufferedWriter.write(jsonString);// 将格式化的jsonarray字符串写入文件
                bufferedWriter.flush();// 清空缓冲区,强制输出数据
                bufferedWriter.close();// 关闭输出流
            }
    
            //自增
            public static String getSequenceCode(String type) {
                    return String.format("%08d", Sequence.getNextValue(type));
            }
    
            
            
    }
  • 相关阅读:
    安卓图片载入之使用universalimageloader载入圆形圆角图片
    加密散列算法——SHA-1
    图片分类器
    LeetCode——Regular Expression Matching
    LeetCode Set Matrix Zeroes
    怎样通过浏览器分析前后端交互
    Android自己定义dialog中的EditText无法弹出键盘的解决
    @Async
    @Transactional 事务
    运行报错
  • 原文地址:https://www.cnblogs.com/lifan12589/p/13706968.html
Copyright © 2020-2023  润新知