Как записать только уникальные значения в файл CSV?

Я разрабатываю программу CLOC, которая переходит в исходный код другой программы и берет значения из них!, где ее сохраняют некоторые значения в файл CSV, используя:

out.write 

проблема в том, что сколько бы я ни запустил программу, сколько бы значений не было записано в файл, несмотря на то, есть они там или нет!

Мой вопрос заключается в том, как заставить программу писать ТОЛЬКО значения, которые НЕ доступны!

вот мой код:

 private void writeReport() {
    BufferedWriter out = null;
    try {
        File file = new File("out.csv");
        boolean exists = file.exists();
        FileWriter fstream = new FileWriter(file, exists /*=append*/);
        out = new BufferedWriter(fstream);
        if (!exists) {
            out.write("Project Name;");
            out.write("Version;");
            out.write("Download Date;");
            out.write("Total Lines of Code;");
            out.write("Executable Lines;");
            out.write("Lines of Comments;");
            out.write("Trivial Lines;");
            out.write("Empty Lines;");
            out.write("Code Complexity;");
            out.write("Number of Files;"); //to be changed to numver of files 
            out.write("Average File Complexity;"); //to be changed to averag file complexity
            out.write("Total Comment Percentage;"); //total

            out.write("Total Lines of Test Code;");
            out.write("Excutable Test Lines;");
            out.write("Lines of Comments in Tests;");
            out.write("Trivial Lines in Tests;");
            out.write("Empty Lines in Tests;");
            out.write("Number of Test Files;");
            out.write("Comment Presentage in Test;");

            out.write(System.getProperty("line.separator"));

        }

        //  for (int i = 0; i < newFiles.getNrOfFiles(); i++) {
       // out.write("test" + ";");
        // out.write(newFiles.getParser(i).getSourceFile().getName()+ ";");
        out.write(String.valueOf(newFiles.getProjectName()) + ";");
        out.write(String.valueOf(newFiles.getVersionNumber()) + ";");
        out.write(String.valueOf(newFiles.getDownloadDate()) + ";");
        out.write(String.valueOf(newFiles.sumLinesOfCode()) + ";");
        out.write(String.valueOf(newFiles.sumLinesOfStatements()) + ";");
        out.write(String.valueOf(newFiles.sumLinesOfComments()) + ";");
        out.write(String.valueOf(newFiles.sumTrivialLines()) + ";");
        out.write(String.valueOf(newFiles.sumEmptyLines()) + ";");
        out.write(String.valueOf(newFiles.sumComplexity()) + ";");
        out.write(String.valueOf(newFiles.getNrOfFiles()) + ";");
        out.write(String.valueOf(newFiles.sumAvgComplexity()) + ";");
        out.write(String.valueOf((100 * newFiles.sumLinesOfComments()) / newFiles.sumLinesOfCode() + "%") + ";");
        out.write(String.valueOf(testFiles.sumLinesOfCode()) + ";");
        out.write(String.valueOf(testFiles.sumLinesOfStatements()) + ";");
        out.write(String.valueOf(testFiles.sumLinesOfComments()) + ";");
        out.write(String.valueOf(testFiles.sumTrivialLines()) + ";");
        out.write(String.valueOf(testFiles.sumEmptyLines()) + ";");
        out.write(String.valueOf(testFiles.getNrOfFiles()) + ";");
        out.write(String.valueOf((100 * testFiles.sumLinesOfComments()) / testFiles.sumLinesOfCode() + "%") + ";");

        out.write(System.getProperty("line.separator"));

      //  }

        //Close the output stream
        out.close();
    } catch (Exception e) {
        System.err.println("Error: " + e.getMessage());
        //  return;
    }
}

Итак, как я могу это сделать?

С наилучшими пожеланиями

0 ответов

Другие вопросы по тегам