JAVAファイルを読み込み、内容を書き込む

3487 ワード

最近、会社は元のコードを規範化する必要があります.問題はプログラムに注釈を追加する必要があります.注釈の内容はバージョン説明、バージョン番号、生産日、著者、内容、機能などです.手作業で手間がかかるので、プログラムで自動的に追加することを考えています.
解決手順:
  1.ディレクトリの下のすべてのファイルをスキャンし、javaと接尾辞を付けたものは保存します.ディレクトリがスキャンされている場合は、次のスキャンを続行します.ここでは再帰関数を書く必要があります.
  2.ファイルのアドレスを取得し、次にファイルの内容を読み出し、最初の行がpackageで始まると、コメントが追加されていないことを示し、RandomAccessFileクラスでコメントテンプレートをファイルに書き込む.コンテンツが出てきたら、最初の行に再配置する必要があることに注意してください.
/**
 * Copyright (C), 2020-2020, Godsname Tech. Co., Ltd.
 */

package com.text;



import java.io.*;
import java.util.ArrayList;

import java.util.*;

/**
 *     
 *  Java        
 *
 *    : Copyright (C), 2020-2020, Godsname Tech. Co., Ltd.
 *
 * @author Godsname
 * @since 2020-04
 */
public class AnnotationSpecifications {
    //       
    static final String PATH = "C:\\Users\\Administrator\\IdeaProjects\\hadoop\\src\\main\\java\\com\\text";
    //        
    static final String CONTENT = "/**
" + " * Copyright (C), 2020-2020, Godsname Tech. Co., Ltd.
" + " */
" + "\r"; public static void main(String[] args) { List fileList = new ArrayList(); getFilesPath(PATH,fileList); putContentToFiles(fileList); } /** * java * * @param list java */ public static void putContentToFiles(List list){ for(String filePath : list){ try { FileReader fileReader = new FileReader(filePath); BufferedReader bufferedReader = new BufferedReader(fileReader); if(bufferedReader.readLine().indexOf("package")>=0){ File temp = File.createTempFile("temp",null); RandomAccessFile raf = new RandomAccessFile(filePath,"rw"); FileOutputStream fileOutputStream = new FileOutputStream(temp); FileInputStream fileInputStream = new FileInputStream(temp); raf.seek(0); byte[] buff = new byte[1024]; int hasRead = 0; while((hasRead = raf.read(buff)) > 0){ fileOutputStream.write(buff,0,hasRead); } raf.seek(0); raf.write(CONTENT.getBytes()); while((hasRead = fileInputStream.read(buff))>0){ raf.write(buff,0,hasRead); } fileReader.close(); bufferedReader.close(); raf.close(); fileInputStream.close(); fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * * * @param filePath * @param list * @return boolean */ public static void getFilesPath(String filePath,List list){ File file = new File(filePath); if(!file.isDirectory() && file.getName().endsWith("java")){ list.add(file.getPath()); }else if(file.isDirectory()){ String[] fileList = file.list(); for(int i = 0;i