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();
                }
            }
    
        }
    }
  • 相关阅读:
    [BTS2004]一步一步学习BizTalk2004 CBR(contentbased routing)
    [BTS06]BizTalk2006 SDK阅读笔记(六) 定义流程
    [JS]收藏
    [BTS06]BizTalk2006 SDK阅读笔记(七) 管理与监控
    [C#]关于调用Office应用程序后,程序不退出的问题
    [JS]让表单提交返回后保持在原来提交的位置上
    [BTS][收藏]啥时候用BTS,啥时候用WF,就看这里。
    [BTS06]BizTalk2006 SDK阅读笔记(一) 角色
    [BTS]BizTalk学习之Functoid篇(Database Lookup)
    [LCS]半个月的成果,用RTCClient开发的Robot!
  • 原文地址:https://www.cnblogs.com/youcong/p/10098948.html
Copyright © 2011-2022 走看看