2 – Orientação a objetos na prática
Sumário
Capítulo 1 – Introdução e conceitos básicos
1.4 Orientação a Objetos
1.4.1 Classe 1.4.2 Objetos
1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos get e set
Capítulo 2 – Orientação a objetos na prática
2.1 Linguagem JAVA
Leitura de arquivo
●
É muito comum softwares que salvam em arquivos
●
Dependendo da aplicação é melhor salvar em arquivo que criar um banco
de dados
●
Se formos olhar a fundo, um banco de dados, funciona como um
Leitura de arquivo
●
Tipos mais frequentes de salvamento:
– Csv● A primeira linha do arquivo contém o cabeçalho dos dados ● Ou seja, os nomes das colunas
● E todos os seus dados são separados por ; ● Em cada linha contém um registro
Leitura de arquivo
●
Tipos mais frequentes de salvamento:
– Separado por “ ”(espaço branco)● A primeira linha do arquivo contém o cabeçalho dos dados ● Ou seja, os nomes das colunas
● E todos os seus dados são separados por “ ”(espaço branco) ● Em cada linha contém um registro
Leitura de arquivo
●
Tipos mais frequentes de salvamento:
– Separado por ,● A primeira linha do arquivo contém o cabeçalho dos dados ● Ou seja, os nomes das colunas
● E todos os seus dados são separados por , ● Em cada linha contém um registro
Nome,custo,preço, Macarrão,1.23,3.45, Arroz,4.78,9.00, Feijão,3.50,5.50 Teste.txt
Perigoso, pois pode confundir com separador de casas decimais
Java – Entrada de dados
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●
É a classe que captura os dados inseridos via teclado
– Como toda classe é necessário instânciá-la– Passando como parêmetro o objeto de entrada System.in – Ex:
Relembrando!
Java – Entrada de dados
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●
É a classe que captura os dados inseridos via teclado
– Como toda classe é necessário instânciá-la– Passando como parêmetro o objeto de entrada System.in – Ex:1 import java.util.Scanner;
2
3 class Teste{ 4
5 private static void main( String[] args ) { 6 Scanner ler = new Scanner(System.in);
7 int num1;
8 System.out.print("Entre com o número: ");
9 num1 = ler.nextInt();
10 System.out.printf("O dobro é: %d", 2*num1); 11 }
12 }
Relembrando!
Leitura de arquivo
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●Permite fazer o scaneamento de um arquivo
– Agora o parâmetro é um arquivo lido – Em ingles FileReader
Leitura de arquivo
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●Permite fazer o scaneamento de um arquivo
– Agora o parâmetro é um arquivo lido – Em ingles FileReader
– Ex:1 import java.util.Scanner;
2
3 class Teste{ 4
5 private static void main( String[] args ) { 6
Leitura de arquivo
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●Permite fazer o scaneamento de um arquivo
– Agora o parâmetro é um arquivo lido – Em ingles FileReader
– Ex:1 import java.util.Scanner;
2 import java.io.FileReader; 3 class Teste{
4
5 private static void main( String[] args ) { 6
7 FileReader f = new FileReader(caminhoDoArquivo); 8 9 Scanner arquivoLido = new Scanner(f); 10 11 12 } 13 } – Note que –
- O temos que importar a classe FileReader - FileReader é a classe que, encontra e abre o arquivo
– Note que –
- O temos que importar a classe FileReader - FileReader é a classe que, encontra e abre o arquivo
Temos que passar o caminho do arquivo
Leitura de arquivo
Classe Scanner
Classe Scanner
●
Pertence ao pacote
java.util.Scanner
●Permite fazer o scaneamento de um arquivo
– Agora o parâmetro é um arquivo lido – Em ingles FileReader
– Ex:1 import java.util.Scanner;
2 import java.io.FileReader; 3 class Teste{
4
5 private static void main( String[] args ) { 6
7 FileReader f = new FileReader(caminhoDoArquivo); 8 9 Scanner arquivoLido = new Scanner(f); 10 11 12 } 13 }
- O temos que importar a classe FileReader - FileReader é a classe que, encontra e abre o arquivo
- FileReader é a classe que, encontra e abre o arquivo
Ai sim podemos usá-la na classe Scanner
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Precisamos saber qual é o delimitador...
●
Neste caso sabemos que o arquivo está no padrão “csv”
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Precisamos saber qual é o delimitador...
●
Neste caso sabemos que o arquivo está no padrão “csv”
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";"); 9
Isto significa que:
● Ele vai ler o arquivo de delimitador a delimitador ● Ou seja, de ; em ;
Isto significa que:
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Precisamos saber qual é o comando para fazer a leitura!
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Precisamos saber qual é o comando para fazer a leitura!
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
9 String aux = arquivoLido.next();
● Este é o comando para fazer a leitura
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Precisamos saber qual é o comando para fazer a leitura!
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
9 String aux = arquivoLido.next();
● Este é o comando para fazer a leitura
● Ele pega o que tem de um delimitador a outro
● Este é o comando para fazer a leitura
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Agora é só repetir o processo até o final do arquivo...
●Para isso usaremos um Laço
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Agora é só repetir o processo até o final do arquivo...
●Para isso usaremos um Laço
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Agora é só repetir o processo até o final do arquivo...
●Para isso usaremos um Laço
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
9 String aux = arquivoLido.next();
10 while (arquivoLido.hasNext()) {
11 String lido = arquivoLido.next(); 12 System.out.println(lido); 13 } 14 arquivoLido.close(); 15 16 } – Note que –
- Por segurança verificamos se o arquivo ainda não acabou - método: hasNext()
– Note que –
Leitura de arquivo
Como ler o arquivo de fato?
Como ler o arquivo de fato?
●
Agora é só repetir o processo até o final do arquivo...
●Para isso usaremos um Laço
5 private static void main( String[] args ) {
6 FileReader f = new FileReader(caminhoDoArquivo);
7 Scanner arquivoLido = new Scanner(f);
8 arquivoLido.useDelimiter(";");
9 String aux = arquivoLido.next();
10 while (arquivoLido.hasNext()) {
11 String lido = arquivoLido.next(); 12 System.out.println(lido); 13 } 14 arquivoLido.close(); 15 16 } Pronto
● Ao final fecha-se o arquivo!
Pronto
Escrita no arquivo
Semelhante a leitura
Semelhante a leitura
●
Usa a classe PrintWriter
java.io.PrintWriter
●
Que por sua vez usa
FileWriter
do pacote
java.io.FileWriter;
5 private static void main( String[] args ) {
6 FileWriter arq = new FileWriter(caminhoDoArquivo); 7 PrintWriter gravarArq = new PrintWriter(arq);
8 gravarArq.print(texto); 9 arq.close();
Escrita no arquivo
Semelhante a leitura
Semelhante a leitura
●
Usa a classe PrintWriter
java.io.PrintWriter
●
Que por sua vez usa
FileWriter
do pacote
java.io.FileWriter;
●Para gravar utilza-se a função:
● print(“texto a ser gravado”)
5 private static void main( String[] args ) {
6 FileWriter arq = new FileWriter(caminhoDoArquivo); 7 PrintWriter gravarArq = new PrintWriter(arq);
8 gravarArq.print(texto); 9 arq.close();
Leitura e escrita em arquivo
Exercício
●
Faça um método para classe “Cliente”
–Que escreva a classe em “csv”
Leitura e escrita em arquivo
Exercício
●