1
+ package controller ;
2
+
3
+ import java .io .File ;
4
+ import java .io .FileNotFoundException ;
5
+ import java .io .FileOutputStream ;
6
+ import java .io .FileReader ;
7
+ import java .io .IOException ;
8
+ import java .io .PrintStream ;
9
+ import java .util .ArrayList ;
10
+ import java .util .Scanner ;
11
+
12
+ import javax .swing .JOptionPane ;
13
+
14
+ import model .Cliente ;
15
+ import model .Data ;
16
+ import model .Endereco ;
17
+ import util .Mensagem ;
18
+ import util .Titulo ;
19
+ import util .Util ;
20
+
21
+ /**
22
+ * Classe responsável por controlar os métodos do objeto Cliente
23
+ *
24
+ * @author João Victor
25
+ * @since 09/03/2021
26
+ * @version 1.0
27
+ */
28
+ public class ClienteController {
29
+
30
+ // declarar o nome do arquivo TXT utilizado
31
+ private String arquivo = "cliente.txt" ;
32
+
33
+ /*
34
+ * método para gravar registros no arquivo TXT
35
+ */
36
+ public void gravarTxtCliente (Cliente cliente ) {
37
+
38
+ // classe auxiliar para carregar um arquivo existente ou criar um novo arquivo
39
+ File file = new File (arquivo );
40
+
41
+ try {
42
+ // classe auxiliar para gerar um objeto de memória para gravação do arquivo
43
+ FileOutputStream arquivoOutput = new FileOutputStream (file , true );
44
+
45
+ // classe auxiliar para gerar o arquivo e seu conteúdo
46
+ PrintStream gravador = new PrintStream (arquivoOutput );
47
+
48
+ // gravando o conteúdo do arquivo
49
+ gravador .print (cliente .getCodigo ());
50
+ gravador .print (";" );
51
+ gravador .print (cliente .getNome ());
52
+ gravador .print (";" );
53
+ gravador .print (cliente .getEndereco ().getCodigo ());
54
+ gravador .print (";" );
55
+ gravador .print (cliente .getEndereco ().getLogradouro ());
56
+ gravador .print (";" );
57
+ gravador .print (cliente .getEndereco ().getEndereco ());
58
+ gravador .print (";" );
59
+ gravador .print (cliente .getEndereco ().getNumero ());
60
+ gravador .print (";" );
61
+ gravador .print (cliente .getEndereco ().getComplemento ());
62
+ gravador .print (";" );
63
+ gravador .print (cliente .getEndereco ().getBairro ());
64
+ gravador .print (";" );
65
+ gravador .print (cliente .getEndereco ().getCidade ());
66
+ gravador .print (";" );
67
+ gravador .print (cliente .getEndereco ().getEstado ());
68
+ gravador .print (";" );
69
+ gravador .print (cliente .getEndereco ().getCep ());
70
+ gravador .print (";" );
71
+ gravador .print (cliente .getCpf ());
72
+ gravador .print (";" );
73
+ gravador .print (cliente .getRg ());
74
+ gravador .print (";" );
75
+ gravador .print (cliente .getDataNascimento ().getDia ());
76
+ gravador .print (";" );
77
+ gravador .print (cliente .getDataNascimento ().getMes ());
78
+ gravador .print (";" );
79
+ gravador .print (cliente .getDataNascimento ().getAno ());
80
+ gravador .print (";" );
81
+ gravador .print (cliente .getIdade ());
82
+ gravador .print (";" );
83
+ gravador .print (cliente .getSexo ());
84
+ gravador .print (";" );
85
+ gravador .print (cliente .getTelefone ());
86
+ gravador .print (";" );
87
+ gravador .print (cliente .getCelular ());
88
+ gravador .print (";" );
89
+ gravador .print (cliente .getEmail ());
90
+ gravador .print ("\n " );
91
+
92
+ // fechando o processo de gravação
93
+ gravador .close ();
94
+ arquivoOutput .close ();
95
+
96
+ } catch (FileNotFoundException e ) {
97
+ // exibindo pro usuário uma mensagem de erro
98
+ JOptionPane .showMessageDialog (null , Mensagem .erroGravarArquivoCliente , Titulo .cadastroCliente , 0 );
99
+ // exibe no console o log de erro do java
100
+ e .printStackTrace ();
101
+ } catch (IOException e ) {
102
+ JOptionPane .showMessageDialog (null , Mensagem .erroGravarArquivoCliente , Titulo .cadastroCliente , 0 );
103
+ e .printStackTrace ();
104
+ }
105
+
106
+ } // fim do método gravar
107
+
108
+ /*
109
+ * método para retornar uma lista de clientes
110
+ */
111
+ public ArrayList <Cliente > getClientes () {
112
+ // objeto de lista para retornar no método
113
+ ArrayList <Cliente > clientes = buscarTodos ();
114
+ return clientes ;
115
+ }
116
+
117
+ /*
118
+ * método para ler o arquivo TXT de cliente
119
+ */
120
+ private ArrayList <Cliente > buscarTodos () {
121
+
122
+ // lista auxiliar para retornar no método
123
+ ArrayList <Cliente > clientes = new ArrayList <Cliente >();
124
+
125
+ try {
126
+ // classe Scanner auxiliar para ler o arquivo de clientes
127
+ Scanner leitor = new Scanner (new FileReader (arquivo ));
128
+
129
+ // laço de repetição para leitura do arquivo com o comando hasNext
130
+ while (leitor .hasNext ()) {
131
+
132
+ // objeto auxiliar para retornar no método
133
+ Cliente cliente = getCliente (leitor .nextLine ());
134
+
135
+ // atribuindo o objeto cliente na lista de retorno
136
+ clientes .add (cliente );
137
+ } // fim do while
138
+ } catch (FileNotFoundException e ) {
139
+ // TODO Auto-generated catch block
140
+ e .printStackTrace ();
141
+ }
142
+
143
+ return clientes ;
144
+ } // fim do método
145
+
146
+ /*
147
+ * método para retornar um objeto do tipo cliente
148
+ */
149
+ private Cliente getCliente (String args ) {
150
+ // objeto auxiliar para retornar no método
151
+ Cliente cliente = new Cliente ();
152
+ Endereco endereco = new Endereco ();
153
+ Data dataNascimento = new Data ();
154
+
155
+ // variável auxiliar para quebrar o registro do arquivo
156
+ String aux [] = args .split (";" );
157
+
158
+ // valorizando o objeto cliente
159
+ cliente .setCodigo (Util .getInt (aux [0 ]));
160
+ cliente .setNome (aux [1 ]);
161
+ // endereço
162
+ endereco .setCodigo (Util .getInt (aux [2 ]));
163
+ endereco .setLogradouro (aux [3 ]);
164
+ endereco .setEndereco (aux [4 ]);
165
+ endereco .setNumero (Util .getInt (aux [5 ]));
166
+ endereco .setComplemento (aux [6 ]);
167
+ endereco .setBairro (aux [7 ]);
168
+ endereco .setCidade (aux [8 ]);
169
+ endereco .setEstado (aux [9 ]);
170
+ endereco .setCep (aux [10 ]);
171
+ cliente .setEndereco (endereco );
172
+ //
173
+ cliente .setCpf (aux [11 ]);
174
+ cliente .setRg (aux [12 ]);
175
+ // data
176
+ dataNascimento .setDia (Util .getInt (aux [13 ]));
177
+ dataNascimento .setMes (Util .getInt (aux [14 ]));
178
+ dataNascimento .setAno (Util .getInt (aux [15 ]));
179
+ cliente .setDataNascimento (dataNascimento );
180
+
181
+ cliente .setIdade (Util .getInt (aux [16 ]));
182
+ // comando charAt serve para pegar apenas a posição indicada
183
+ cliente .setSexo (aux [17 ].charAt (0 ));
184
+ // contatos
185
+ cliente .setTelefone (aux [18 ]);
186
+ cliente .setCelular (aux [19 ]);
187
+ cliente .setEmail (aux [20 ]);
188
+
189
+ // retornando o objeto valorizado
190
+ return cliente ;
191
+ } // fim do método
192
+
193
+ } // fim da classe
0 commit comments