Java API Giuliana Silva Bezerra Leitura e escrita de arquivos Java.io.file Escrita de arquivos Java.io.PrintWriter 1. Criar instância de Java.io.PrintWriter PrintWriter saida = new PrintWriter(“Diretorio do arquivo”); 2. Escrever string no arquivo 3. Feche o arquivo Leitura de arquivos Java.io.FileReader ; Java.io.BufferedReader 1. Criar o leitor de caracteres 2. Criar uma instância para Java.io.BufferedReader 3. Ler o arquivo 4. Fechar os arquivos „leitor‟ e „reader‟ Exemplo de programa Ler um arquivo da seguinte forma: 1. Criar um arquivo „entrada.txt‟ 2. Linha 1 contém um inteiro 3. Linha 2 contém um inteiro 4. Converter as Strings para inteiros 5. Somar os dois inteiros 6. Escrever em um arquivo „saida.txt‟ a soma desses inteiros Caso o arquivo de entrada/saída não exista imprima uma mensagem para o usuário Coleções Vetores, conjuntos, pilhas, árvores binárias, tabelas hash, ... Pacote java.util Implementa as principais estruturas de dados Possui métodos úteis para manipulação de coleções Tipos de coleções em java Vetores Tamanho fixo Verificados em tempo de execução Comprimento do vetor Tipo definido Coleções java.util – Listas, conjuntos mapas Flexibilidade Reuso de métodos Vetores Declaração Retorno Copiar vetores – java.lang.System arraycop (Object [] origem, int ind1, Object [] destino, int ind2) Vetores Java.util.Arrays void Arrays.sort(vetor) void Arrays.equals(vetor1, vetor2) int Arrays.binarySearch(vetor, chave) void Arrays.fill(vetor, valor) Java.lang.Comparable public int compareTo(Object obj) 1. 0 : o1 = o2 1 : o2 > o1 -1 : o1 > o2 Exemplo de programa 1. Crie um subprograma que receba 2 vetores com 2. 3. 4. 5. 6. 5 elementos cada Crie um novo vetor que receba a soma dos 2 vetores Imprima esse vetor Ordene esse vetor Retorne o vetor ordenado Imprima esse vetor ordenado no programa principal Collections Interfaces, implementações, algoritmos 1. Interfaces Set : Conjuntos List : Inserção, remoção, busca, ... Queue : Filas (operações especiais) Java.util.Collections Pricipais métodos Collections.sort(List <T> list) Collections.swap(List <T> list, int p1,int p2) Collections.rotate(List<T> list, int nRotate) (...) List ArrayList Inserindo elementos no ArrayList ArrayList Operações importantes Adicionar elementos add (Object o), add (int index, Object o), set (int index, Object o) Remover elementos remove(Object o), remove(Object o, int index) Acessar elementos get(int index), iterator() Busca de elementos contains(Object o), indexOf( Object o) Outras operações size (), isEmpty(), clear(), ... List LinkedList Inserindo elementos numa LinkedList LinkedList Operações importantes – Operações de ArrayList e operações especiais Adicionar elementos addFirst(Object o), addLast (Object o), Remover elementos removeFirst(Object o), removeLast(Object o, int index) Acessar elementos getFirst(int index), getLast(int index) Busca de elementos ArrayList Outras operações (...) Java.lang.String Criação de Strings Uso de métodos, construtores, ... Atribuição de um literal Comparação de Strings Usar compareTo()!! Métodos definidos para Strings Métodos que criam novos Strings String concat(String s), String replace(char old, char new), String substring (int start, int end), String toUpperCase() e String toLowerCase() Métodos para pesquisa boolean endsWith(String), boolean startsWith(String), int indexOf(String), int indexOf(String, int offset) e char charAt(int posição) Outros : length(), ... Exemplo de programa 1. Crie um ArrayList com 5 posições 2. Insira 5 nomes no vetor, estaticamente ou lidos 3. 4. 5. 6. pelo teclado Crie um Iterator para o vetor Percorra o vetor(usando o Iterator criado) e remova todos os nomes que começarem com a letra “a” Ordene o vetor final Imprima o vetor Exercícios 1. Crie um programa que leia um arquivo de texto “nomes.txt” onde: Cada linha contém um nome seguido de um status. Ex: Paulo Ferreira OK; Ana Flávia NOK Se o status do nome for OK, escreva somente o nome em um arquivo de saída “nomesOK.txt” Os nomes no arquivo de saída deverão estar em ordem alfabética Caso um dos arquivos não exista imprima um aviso ao usuário Exercícios 2.