Package controleEstoque.arquivos

Source Code of controleEstoque.arquivos.ControlGravaArquivos

package controleEstoque.arquivos;

import controleEstoque.entidades.EntradaProduto;
import controleEstoque.entidades.Fornecedor;
import controleEstoque.entidades.Produto;
import controleEstoque.entidades.SaidaProduto;
import controleEstoque.estruturaDados.ListaFornecedor;
import controleEstoque.estruturaDados.ListaProdutos;
import controleEstoque.estruturaDados.No;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


/**
* @author Eduardo Lacerda
* Data: May 29, 2012
*/
public class ControlGravaArquivos {
    static ControlCarregaArquivos controlCarregaArquivos;

    File file;
    File dir;
    EntradaProduto entradaProduto;
    SaidaProduto saidaProduto;

    public ControlGravaArquivos() {
    }
    /**
     * Construtor da classe ControlArquivosTexto
     * @param nomeArquivo selecione o tipo de arquivo (PRODUTO, FUNCIONARIO, LOGIN)
     *
     */
    public ControlGravaArquivos(Arquivo nomeArquivo) {
        switch (nomeArquivo){
            case PRODUTO:
                this.file = new File("Produtos/produto.txt");
                this.dir = new File("Produtos");
            break;
            case FUNCIONARIO:
                this.file = new File("Funcionario/funcionario.txt");
                this.dir = new File("Funcionarios");
            break;
            case LOGIN:
                this.file = new File("Login/login.txt");
                this.dir = new File("Login");
            break;
            case FORNECEDOR:
                this.file = new File("Fornecedor/fornecedor.txt");
                this.dir = new File("Fornecedor");
                   
        }
        verificaDiretorio(file, dir);
    }
   
    /**
     * Método que verifica o arquivo e o diretório, os cria caso não existam
     * @param file
     * @param dir
     */
    private void verificaDiretorio(File file, File dir){
        if(!dir.exists())
            dir.mkdirs();
        if(!file.exists())
            try {
            file.createNewFile();
        } catch (IOException ex) {
            Logger.getLogger(ControlGravaArquivos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
   
    /**
     * Cria um arquivo com a entrada de um produto
     * Primeiro ele cria o diretório(caso não exista) EntradaProdutos e o arquivo entradaProdutos+ idProduto + .txt
     * @param entradaProduto Classe EntradaProduto para registrar uma entrada de um produto
     * @param id Id do produto correspondente a saida
     */
    public ControlGravaArquivos(EntradaProduto entradaProduto, int id) {
        this.dir = new File("Produtos/EntradaProdutos");      
        this.file = new File("Produtos/EntradaProdutos/entradaProduto" + Integer.toString(id) + ".txt")
        this.entradaProduto = entradaProduto;
        gravaRegistroProduto(entradaProduto);
    }
   
     /**
     * Cria um arquivo com a entrada de um produto
     * @param saidaProduto Classe SaidaProduto para registrar uma saida de um produto
     * @param id Id do produto correspondente a saida
     */
    public ControlGravaArquivos(SaidaProduto saidaProduto, int id) {
        this.dir = new File("Produtos/SaidaProdutos");
        this.file = new File("Produtos/SaidaProdutos/SaidaProduto" + Integer.toString(id) + ".txt")
        this.saidaProduto = saidaProduto;
        gravaRegistroProduto(saidaProduto);
    }
   
    /**
     * Verifica se já existe algum arquivo existente seus diretórios e passa seu conteúdo para o returno
     * @return
     */
    private String carregaArquivoAnterior(){
        String strAnterior = null;
        if(!dir.exists()){
           dir.mkdirs();
        }else{
            if(file.exists())               
                strAnterior = new ControlCarregaArquivos(file).retornaStringArquivo(file.getPath());   
        }  
       
        return strAnterior;
    }
   
    /**
     * Registra a entrada de um produto
     * @param entradaProduto
     */
    public void gravaRegistroProduto(EntradaProduto entradaProduto){
        String strAnterior = carregaArquivoAnterior();                    
        gravaRegistroProduto(strAnterior, entradaProduto);
    }
   
   
   
    /**
     * Registra a saída de um produto
     * @param saidaProduto
     */
    public void gravaRegistroProduto(SaidaProduto saidaProduto){
        String strAnterior = carregaArquivoAnterior();             
        gravaRegistroProduto(strAnterior, saidaProduto);
    }
   
    /**
     * Registra a ação de um produto
     * @param arquivoAnterior String contendo o valor do arquivo de texto que já existe
     * @param objeto EntradaProduto ou SaidaProduto
     */
    private void gravaRegistroProduto(String arquivoAnterior, Object objeto){
        String arquivo = "";
        if(!"".equals(arquivoAnterior) && arquivoAnterior != null){
            arquivo = arquivoAnterior;
        }
       
        arquivo += objeto.toString();
       
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
            writer.write(arquivo);
            writer.close();
        } catch (IOException ex) {
            Logger.getLogger(ControlGravaArquivos.class.getName()).log(Level.SEVERE, null, ex);
        }
      
       
    }
   
   
   
    /**
     * Através de uma Lista de Produtos, será armazenada em um arquivo.
     * @param produtos Lista com todos os produtos do Sistema.
     */
    public void criaArquivoProduto(ListaProdutos produtos){      
       Produto produto;    
      
       try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
            No aux;
            aux = produtos.getLista();
           
            while(aux != null){
          
                produto = (Produto) aux.getObjeto();

                escreveNoArquivo(writer, produto.toString());

                aux = aux.getProx();
            }
           
            writer.close();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.toString());           
        }
      
     
    }
   
    /**
     * Cria o arquivo de fornecedor a partir de uma lista existente.
     * @param fornecedor
     */
    public void criaArquivoFornecedor(ListaFornecedor fornecedor){      
       Fornecedor forn;    
      
       try {
            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
            No aux;
            aux = fornecedor.getLista();
           
            while(aux != null){
          
                forn = (Fornecedor) aux.getObjeto();
                String toString = forn.getNome()+"\n" + forn.getTelefone() + "\n";

                //escreveNoArquivo(writer, forn.toString(falnse));
                writer.write(toString);

                aux = aux.getProx();
            }
           
            writer.close();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.toString());           
        }
      
     
    }
   
   
    /**
     * Verifica se o arquivo existe e retorna o objeto File.
     * @return
     */
    public File leArquivo(){
        if(file.exists()){
            return file;
        }else{
            return new File("");
        }   
    }
   
    /**
     * Método que escreve em um determinado arquivo de texto um valor passado como argumento.
     * @param bufWriter BufferedWriter que irá escrever no arquivo
     * @param textoArquivo Conteúdo do arquivo.
     */
    private void escreveNoArquivo(BufferedWriter bufWriter, String textoArquivo){
        try {
            bufWriter.write(textoArquivo);
        } catch (IOException ex) {
            Logger.getLogger(ControlGravaArquivos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
   
    /**
     * Escreve no arquivo de texto instanciado no atributo file um determinado conteúdo de texto.
     * @param textoArquivo Conteúdo do arquivo de texto.
     */
    public void escreveNoArquivo(String textoArquivo){
        try {           
            BufferedWriter bufWriter = new BufferedWriter(new FileWriter(new File(textoArquivo)));
            bufWriter.write(textoArquivo);
            bufWriter.close();
        } catch (IOException ex) {
            Logger.getLogger(ControlGravaArquivos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
   
   

}
TOP

Related Classes of controleEstoque.arquivos.ControlGravaArquivos

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.