package formulariovalidacao.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
/**
* Utilitrio para ler arquivos.
*/
public class ArquivoUtil {
/** Charset padro: ISO-8859-1. */
private static final Charset CHARSET_PADRAO = Charset.forName("ISO-8859-1");
private static ArquivoUtil instancia = new ArquivoUtil();
/**
* Construtor protegido, padro singleton.
*/
protected ArquivoUtil() {
//Permite herana
}
/**
* Retorna instancia.
*
* @return instancia
*/
public static ArquivoUtil get() {
return instancia;
}
/**
* L um arquivos texto passado como parmetro.
*
* @param path caminho do arquivo a partir da raiz do projeto
* @return {@link List} com as linhas do arquivo
*/
public static List<String> lerArquivoTexto(String path) {
List<String> linhas = new ArrayList<String>();
//InputStream is = ClassLoader.getSystemResourceAsStream(path);
InputStream is = ClassLoader.getSystemResourceAsStream(path);
BufferedReader in = new BufferedReader(new InputStreamReader(is, CHARSET_PADRAO));
try {
String linhaArquivo;
while ((linhaArquivo = in.readLine()) != null) {
linhas.add(linhaArquivo);
}
} catch (IOException e) {
//LOGGER.error("Erro ao ler arquivo txt.", e);
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
//LOGGER.error("Erro ao fechar o arquivo txt.", ex);
}
}
return linhas;
}
/**
* Cria arquivo no diretrio temporrio do sistema operacional.
*
* @param nomeArquivo nome do arquivo a ser criado.
* @param conteudoArquivo contedo do arquivo em bytes
* @return caminho absoluto do arquivo
*/
public String criarArquivoTemp(String nomeArquivo, byte[] conteudoArquivo) {
File arquivo = new File(System.getProperty("java.io.tmpdir") + nomeArquivo);
FileOutputStream streamSaida = null;
try {
streamSaida = new FileOutputStream(arquivo);
streamSaida.write(conteudoArquivo);
return arquivo.getAbsolutePath();
} catch (FileNotFoundException e) {
throw new IllegalStateException("Arquivo no encontrado.", e);
} catch (IOException e) {
throw new IllegalStateException(e);
} finally {
try {
if (streamSaida != null) {
streamSaida.close();
}
} catch (IOException e) {
//LOGGER.error("No foi possvel fechar o recurso.", e);
}
}
}
public static void main(String[] args) {
List<String> textos = lerArquivoTexto("teste.txt");
System.out.println(textos.size());
}
}
|