All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.jarch.svn.FileUtils Maven / Gradle / Ivy

There is a newer version: 24.8.0
Show newest version
package br.com.jarch.svn;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public final class FileUtils {

    private static final int MIL_VINTE_QUATRO = 1024;

    private FileUtils() {
        super();
    }

    public static String correctFolderFormat(String value) {
        String newValue = value.trim();

        if (File.separator.equals("/")) {
            newValue = newValue.replace("/", "\\");

            if (newValue.charAt(newValue.length() - 1) != '\\') {
                newValue = newValue + "\\";
            }
        } else {
            newValue = newValue.replace("\\", "/");

            if (newValue.charAt(newValue.length() - 1) != '/') {
                newValue = newValue + "/";
            }
        }

        return newValue;
    }

    public static File folderTemporary() {
        return new File(System.getProperty("java.io.tmpdir"));
    }

    public static void copy(File arquivoOrigem, File arquivoDestino) throws IOException {
        copy(arquivoOrigem.getAbsolutePath(), arquivoDestino.getAbsolutePath());
    }

    public static void copy(String arquivoOrigem, String arquivoDestino) throws IOException {
        File origem = new File(arquivoOrigem);
        File destino = new File(arquivoDestino);


        try (OutputStream out = new FileOutputStream(destino);
             InputStream in = new FileInputStream(origem)) {

            byte[] buf = new byte[MIL_VINTE_QUATRO];
            int len;

            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
        }
    }

    public static void remove(File file) {
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; ++i) {
                remove(files[i]);
            }
        }

        if (!file.delete()) {
            throw new RuntimeException();
        }
    }

    public static void move(File arquivo, File pastaDestino) {

        Path arquivoOrigemPath = arquivo.toPath();

        Path pastaDestinoPath = new File(pastaDestino.getAbsolutePath() + "/" + arquivo.getName()).toPath();

        System.out.println("MOVENDO " + arquivo.getAbsolutePath() + " PARA " + pastaDestinoPath.toString());

//        Files.move(arquivoOrigemPath, pastaDestinoPath);

        try {
            Files.move(arquivoOrigemPath, pastaDestinoPath);
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }

        System.out.println("MOVIDO " + arquivo.getAbsolutePath() + " PARA " + pastaDestinoPath.toString());
    }

    public static String extensao(File f) {
        String ext = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');

        if (i > 0 && i < s.length() - 1) {
            ext = s.substring(i + 1).toLowerCase(Locale.forLanguageTag("pt-BR"));
        }

        if (ext == null) {
            return "";
        }

        return ext;
    }

    public static List content(File arquivo) throws IOException {
        FileReader fileReader = new FileReader(arquivo);

        BufferedReader lerArq = new BufferedReader(fileReader);

        List linhas = new ArrayList<>();

        String linha = lerArq.readLine(); // lê a primeira linha

        linhas.add(linha);

        while (linha != null) {
            linha = lerArq.readLine(); // lê da segunda até a última linha

            if (linha != null) {
                linhas.add(linha);
            }
        }

        fileReader.close();

        return linhas;
    }

    public static void save(File arquivo, String conteudo) throws IOException {
        PrintWriter pw = new PrintWriter(arquivo);
        pw.append(conteudo);
        pw.flush();
        pw.close();
    }

    public static void save(File arquivo, List lista) throws IOException {
        PrintWriter pw = new PrintWriter(arquivo);

        for (String conteudo : lista) {
            pw.append(conteudo + "\n");
        }

        pw.flush();
        pw.close();
    }

    public static void save(File arquivo, InputStream is) {
        try (OutputStream os = new FileOutputStream(arquivo)) {
            byte[] bytes = new byte[MIL_VINTE_QUATRO];

            int read;
            while ((read = is.read(bytes)) != -1) {
                os.write(bytes, 0, read);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public static File createTemporary() throws IOException {
        return File.createTempFile("arch", "arch");
    }

    public static String removeExtension(File file) {
        int dot = file.getName().indexOf('.');
        return file.getName().substring(0, dot);
    }

    public static void saveUtf8(File file, List dados) throws IOException {
        try (OutputStream os = new FileOutputStream(file);
             Writer out = new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8))) {

            for (String linha : dados) {
                out.write(linha + "\n");
            }
        }
    }

    public static void saveUsAscIi(File file, List dados) throws IOException {
        try (OutputStream os = new FileOutputStream(file);
             Writer out = new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.US_ASCII))) {
            for (String linha : dados) {
                out.write(linha + "\n");
            }
        }
    }

    public static File getFile(byte[] bytes) throws IOException {
        File arquivoTemp = File.createTempFile("arch", "getFile");
        save(arquivoTemp, bytes);
        return arquivoTemp;
    }

    public static void save(File arquivo, byte[] bytes) throws IOException {
        try (FileOutputStream fos = new FileOutputStream(arquivo)) {
            fos.write(bytes);
            FileDescriptor fd = fos.getFD();
            fos.flush();
            fd.sync();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy