1. 程式人生 > >Java程式碼輸出到txt檔案(申請專利貼原始碼的必備利器)

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("\n"); } } 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(); } } } }