Gregui Shigunov


Manipulando Arquivos com Java (abrir, salvar e adicionando)

Enviado em JAVA, Programação por Gregui Shigunov no 24 24UTC Setembro 24UTC 2007
Tags: , , , , , , , , , , ,

Ai vai uma classe utilitária para trabalhar com arquivos.

Contém:

- Método para salvar conteúdo, com opção para adicionar no final do arquivo, eu em novo arquivo.

- Método para recuperar o conteúdo de um arquivo para uma variável.

ai vai:

/**
* Funções utilitárias para trabalhar com arquivos
* autor: Gregui Shigunov
* arquivo: UtilsArquivo.java
* 20/09/2007
*/


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


/**
* @author Gregui Shigunov
* @since 20/09/2007
*/

public class UtilsArquivo {

/**
* Salva o conteúdo de uma variável em um arquivo
* @param arquivo
* @param conteudo
* @param adicionar se true adicionar no final do arquivo
* @throws IOException
*/

public static void salvar(String arquivo, String conteudo, boolean adicionar)
throws IOException {

FileWriter fw = new FileWriter(arquivo, adicionar);

fw.write(conteudo);
fw.close();
}

/**
* Carrega o conteúdo de um arquivo em uma String, se o aquivo
* não existir, retornará null.
* @param arquivo
* @return conteúdo
* @throws Exception
*/

public static String carregar(String arquivo)
throws FileNotFoundException, IOException {

File file = new File(arquivo);

if (! file.exists()) {
return null;
}

BufferedReader br = new BufferedReader(new FileReader(arquivo));
StringBuffer bufSaida = new StringBuffer();

String linha;
while( (linha = br.readLine()) != null ){
bufSaida.append(linha + “\n”);
}
br.close();
return bufSaida.toString();
}
}

Exemplo de Utilização:

/**
* Exemplo de Utilização
*/

public static void main(String[] args) {
try {
String texto = “Gregui Shigunov \n gregui@gmail.com.br”;

UtilsArquivo.salvar(“arquivo.txt”, texto, false);

texto = UtilsArquivo.carregar(“arquivo.txt”);

System.out.println(texto);

} catch (Exception e) {
e.printStackTrace();
}

}

Vampiros

13 Respostas para 'Manipulando Arquivos com Java (abrir, salvar e adicionando)'

Assinar os comentários com RSS ou TrackBack para 'Manipulando Arquivos com Java (abrir, salvar e adicionando)'.


  1. Testei sua classe e o resultado foi o seguinte:
    Alexandre Ferreira
    http://alexandreferreira.com.br/Alexandre Ferreira
    http://alexandreferreira.com.br/Alexandre Ferreira
    http://alexandreferreira.com.br/

    Fiz uma pequena mudança no método salvar, veja o resultado e a mudança respectivamente:
    Alexandre Ferreira
    http://alexandreferreira.com.br/
    Alexandre Ferreira
    http://alexandreferreira.com.br/
    Alexandre Ferreira
    http://alexandreferreira.com.br/

    public static void salvar(String arquivo, String conteudo, boolean adicionar) throws IOException {

    FileWriter fw = new FileWriter(arquivo, adicionar);

    if (!conteudo.endsWith(“\n”)) {
    conteudo = conteudo + “\n”;
    }

    fw.write(conteudo);
    fw.close();
    }


  2. Mas não se pode mudar o conteúdo daquilo que se quer salvar! No seu caso você está usando o APPEND (adicionando no final, correto?). Para o seu caso, foi uma boa. Mas imagine que vc precise criar um arquivo que concatene resultados (separados por vírgula, por exemplo), ai a função se torna imprestável! Se o objetivo é ter quebra de linha, ela deve vir antes dessa função. Pois o objetivo dessa função, é salvar em Arquivos, apenas salvar.
    Mas valeu o comentário ;)

  3. Dante disse,

    Gregui, sou meio leigo no assunto… mas gostaria de saber se é possível fazer umas modificações no código e fazer ele salvar Objetos criados por mim… entende? em vez de serem parametros do tipo String, fazer salvar um objeto qualquer…

    “public static void salvar(String arquivo, String conteudo, boolean adicionar)” em vez deste paramentros nesta função, fazer assim:

    “public static void salvar(String arquivo, ClasseDados conteudo, boolean adicionar)”, sendo que a Classe dados, pode ser algo como:

    public class ClasseDados{
    String Nome;
    int Idade;
    String Endereco;
    double Peso;

    public ClasseDados(){
    Nome = “”;
    Idade = 0;
    Endereco = “”;
    Peso = 0;
    }

    ….
    (Outros construtores e os metodos que serão utilizados)
    ….
    }

    Deu para entender? Não é algo realmente complicado de alterar, muito pelo contrário, dará maior padronização no arquivo… Abraçosss

    public ClasseDados(){

  4. leandro disse,

    Ola tudo bem….
    estou começando agora a aprender java

    estou fazendo um programinha que guardar o saldo cliente, o n da conta, o nome….

    como faco para guardar as informacoies em arquivo e depois recupera-las
    se puder me ajudar agradeço muito…..
    como vou determinar o caminho do diretorio onde vai salvar o arquivo

    obrigado

  5. Campelo disse,

    bacana…

    tua explication…

    muito claro, melhor que isso so mudar de curso…

    flws


  6. :)

  7. rxavier disse,

    OBRIGADO !! :D

  8. Iarli Goulart disse,

    Esqueci minha senha do Gmail e não consigo entrar,devo estar com um volume de mensagens imensom,soliccito ajuda para resolver o poblema.

  9. demer matheus disse,

    óla pessoal estou aprendendo java agora e gostaria de tirar algumas dúvidas se alguém puder me ajudar segue o seguinte problema: eu tenho que montar um programa em java que vai ler o arquivo no disco txt. e depois carregar a string criptografada numa chave variável e gravar de volta……

  10. Steniobh disse,

    Galera preciso de ajuda urgente!!!

    Procurei em toda web e não consegui nada que me ajudasse.

    Preciso ler informações de modelagem de banco de dados antiga pelo java.
    por exemplo em delphi eu tenho:

    type

    // Declaração da Estrutura
    TPessoa = record
    Nome: String[20];
    Email: String[20];
    end;

    dai no delphi eu faço a associação deste arquivo de estrutura e na hora de fazer a leitura.
    exemplo no delphi:

    arq: file of Tpessoa
    reg:Tpessoa

    assingfile(arq,c:\dados.dat);
    reset (arq)
    read(arq,reg)
    (…)

    Como faço para realizar a leitura disso em Java?


  11. Olá, funcionou corretamente para a minha necessidade, muito obrigado!!!

    só que quando abro o arquivo no bloco de notas ele não está com as quebras de linhas corretas, só funciona no eclipse as quebras (\n). existe algum outro jeito de fazer quebras de linhas além do \n, para que seja reconhecido como nova linha no bloco de notas por exemplo? no delphi seria o código #13 do enter se não me falha a memória, tem algo parecido pro java?

    Obrigado novamente.


  12. experimenta utilizar o \r\n


  13. Olá, funcionou o \r\n para o bloco de notas!
    mais uma vez muito obrigado!


Deixe uma resposta