br.com.jarch.svn.FileUtils Maven / Gradle / Ivy
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();
}
}
}