zoukankan      html  css  js  c++  java
  • Java代码输出到txt文件(申请专利贴源码的必备利器)

    最近公司在申请专利,编写不少文档,项目的代码量实在是过于庞大。如果一个一个的复制粘贴虽然能够完成,但是对于程序员而言实在没有这个必要。shell或者python就能解决这个问题。由于我个人对于shell和python不是非常熟练的情况下,因此我使用Java来实现这个目的。

    该脚本称不上完全自动化,顶多算是半自动化,因为需要精确到对应的包下,才能将对应的Java代码全部输出。不然的话,除了会将Java代码输出到txt文件,同时也会将一些不必要的xml和其他相关的文件一起输出,这样一来会显得很混乱。因此采取这种半自动化的方案临时解决体力劳动,提高一定的效率。

    这段代码大家可以根据自行需要去修改它。

    源代码如下:

    package cn.test;
    
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.Writer;
    
    /**
     * 申请软著代码复制删除注释和空行
     */
    public class Test {
        public static void main(String[] args) throws Exception {
            //文件读取路径
            File dir = new File("E://实验API//workspace//test-saas//test-common//src//main//java//com//test//sass//custome");
            //文件输出路径
            File target = new File("C://Users//test//Desktop//out.txt");
            BufferedWriter bw = new BufferedWriter(new FileWriter(target));
    
            StringBuffer sb = new StringBuffer();
            loopRead(dir, sb);
            write(sb.toString(), bw);
        }
        // 遍历文件夹下所有文件
        private static void loopRead(File dir, StringBuffer sb){
            File[] files = dir.listFiles();
            if (files!=null)
            for(File file:files){
                if(file.isDirectory()){
                    loopRead(file, sb);
                }else {
                    if(file.length()!=0){
                        sb.append(readFileToString(file));
                    }
                }
    
            }
    
        }
        //读取文件里面的内容
        private static String readFileToString(File file){
            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();
            try {
                br = new BufferedReader(new FileReader(file));
                String line = null;
                while((line = br.readLine())!=null){
                    String s = line.trim();
                    if (s.length()==0) {
                        continue;
                    }
                    if (s.startsWith("/") || s.startsWith("*")) {
                        continue;
                    }
                    sb.append(line).append("
    ");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                try {
                    if(br!=null){
                        br.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return sb.toString();
    
        }
        //将读取的路径以及相应的内容写入指定的文件
        private static void write(String str, Writer writer){
            try {
                writer.write(str);
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
    
                try {
                    if(writer!=null)
                        writer.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
    
        }
    }
  • 相关阅读:
    工作
    失败
    理想和一些未来的计划
    安静
    重新开始
    如何度过周末
    放假
    WPF学习笔记-数据采集与监控项目01-登录界面
    VS2017-断点感叹号问题,调试代码显示“当前无法命中断点,还没有为该文档加载任何符号”
    WPF-MVVM模式-表现层的UI框架【学习笔记】
  • 原文地址:https://www.cnblogs.com/youcong/p/10098948.html
Copyright © 2011-2022 走看看