Delete files before creating new from temp using Java file method

Diskutiere Delete files before creating new from temp using Java file method im Allgemeine Java-Themen Bereich.
R

rade7338

I have below code where i am trying to create new file in temp directory which is xml file and its working fine.

Now everytime i run the code, i want to delete the previous file from this temp directory before creating new file because of the size of the file is large and it might full my temp space. The xml file has certain naming convention life __ *. Xml.

I am not sure if we can use tempFile.deleteOnExit () here or how to use that as i am quite new in java file handling and dont know what and where to make change in code

Code:
*/
@ Slf4j
public class InputConsumer implements Runnable {

    public static final string XML_SUFFIX = ".xml";

    private void processlifeZipFile () {// check the number of line in xml input zip file processed
        final AtomicBoolean isInsideLeiRecord = new AtomicBoolean ();
        isInsideLeiRecord.set (false);
        final StringBuilder currentLeiRecordXml = new StringBuilder ();
        try (FileSystem zipFs = FileSystems.newFileSystem (jobRunner.getInputZipPath (), null); // check the zip file
             Stream <String> lines = Files.lines (xmlFileFromLeiZipFile (zipFs))) {// streaming the lines inside xml file
            AtomicInteger processedLinesCounter = new AtomicInteger ();
            AtomicInteger currentLineNumber = new AtomicInteger ();
            lines
                    .sequential ()
                    .forEach (handleLineAndIncrementLineNumber (isInsideLeiRecord, currentLeiRecordXml, processedLinesCounter, currentLineNumber))
            ;
            log.info ("{} lines of XML file inside life input ZIP file {} processed.", processedLinesCounter.get (), jobRunner.getInputZipPath () // number of lines processed in xml file
            );
        } catch (IOException e) {
            throw new IllegalStateException ("Problem reading input file at" + jobRunner.getInputZipPath () + ".", e);
        }
    }
    private Path xmlFileFromLeiZipFile (FileSystem zipFs) {// extracts the xml file from zip file
        log.info ("Input file {} exists: {}", jobRunner.getInputZipPath (), Files.exists (jobRunner.getInputZipPath ()));
        Path tmpXmlPath = createTmpXmlFile ("life__" + System.currentTimeMillis ());
        for (Path rootDir: zipFs.getRootDirectories ()) {
            try (Stream <Path> files = treeAt (rootDir)) {
                log.info ("Trying to extract life XML file from ZIP file into {}.", tmpXmlPath);
                final Path xmlFileInsideZip = files
                        .filter (isNotADir ())
                        .filter (Files :: isRegularFile)
                        .findFirst ()
                        .orElseThrow (() -> new IllegalStateException ("No file found in LEI ZIP file."));
                log.info ("Path to life XML file inside ZIP file: {}.", xmlFileInsideZip);
                return copyReplacing (xmlFileInsideZip, tmpXmlPath);
            }
        }
        throw new IllegalStateException ("No file found in LEI ZIP file" + jobRunner.getInputZipPath () + ".");
    }
    

    private static Path createTmpXmlFile (final String prefix) {
        try {
            log.info ("Creating temporary file {} {}", prefix, XML_SUFFIX);
            return Files.createTempFile (prefix, XML_SUFFIX);
        } catch (IOException e) {
            throw new IllegalStateException ("Could not create tmp file at" + prefix + XML_SUFFIX + ".", e);
        }
    }
    
    @NotNull
    private static Path copyReplacing (Path from, Path to) {
        requireNonNull (from, "Trying to copy from a path, which is null to path" + to + "."); // trying to copy file where no xml file exist in root directory
        requireNonNull (to, "Trying to copy from path" + from + "to a path, which is null.");
        try {
            return Files.copy (from, to, REPLACE_EXISTING);
        } catch (IOException e) {
            throw new IllegalStateException ("Cannot copy from" + from + "to" + to + ".", e);
        }
    }
}
 
Thema: 

Delete files before creating new from temp using Java file method

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben