1 exercicio funcoes com string e manipulacao com arquivo
1. Universidade Federal da Paraíba
Centro de Ciências Aplicadas e Educação
Curso: Sistemas de Informação
Prof: Raoni Kulezka
Disciplina: Linguagem de Programação
Aluna: Kievnny Mendonça
Marcia Evangelista Leite
Java: Funções com String e Manipulação de Arquivos
1- Funções com String
O livro Java 6: Ensino Didático: Desenvolvendo e Implementando Aplicações nos
orienta e apresenta a capacidade na criação de aplicativos da linguagem que surgiu para ser
independente de plataforma e mais segura. Analisando as suas funções com strings, vimos que
strings (um tipo de texto que corresponde a união de vários caracteres) são instâncias da classe
String, sendo assim, geram objetos que possuem propriedades e métodos, podendo ser manipulados
de várias formas, acrescentando, retirando ou modificando caracteres.
Para existência dessa manipulação, existem diversos métodos que devem ser acompanhados
pela sintaxe: < Nome da string> <nome- do- método> (<argumentos>).
O método length retorna o tamanho de uma string, sendo sempre um valor inteiro e muito
utilizado quando a necessidade de se percorrer uma variável String do começo ao fim. Sintaxe:
<string>.length ().
O método charAT retorna um caractere de determinada string de acordo com o índice
informando entre os (). É útil quando necessário verificar a existência de um caractere na string.
Sintaxe: <string>.charAT(<índice>).
Já o método toUpperCase e toLowerCase são utilizados para transformar todas as letras de
uma determinada string em maiúsculas. Sintaxe: <string>. toUpperCase ou toLowerCase ().
O método substring retorna a cópia de caracteres de uma string a partir de dois índices
inteiros especificados, sendo o inicio da copia indicado pelo primeiro índice e o segundo índice, que
indica o final da copia deve ser informado um índice a mais do ultimo caractere.
O método trim remove todos os espaços em branco que aparecerem no inicio e no final de
uma determinada string, não os espaços entre as palavras. Sintaxe: <string>.trim().
Método replace é utilizado para a substituição de caracteres ou grupos, de uma determinada
string. Para isso, devem ser informados os caracteres que deseja substituir e por quais eles serão
substituídos, caso não haja nenhum dos caracteres informados a string original é retornada.
Sintaxe:<string>>. replace (caractere a ser substituído)<substituição>.
Já o método valueOF converter diversos tipos de dados em string. Aceita vários tipos de
argumentos e transforma em string. Sintaxe: String. valueOF( <nome da variável a ser convertida>).
O método indexOf é utilizado para localizar caracteres ou substring em uma String, ele
busca a palavra e retorna a posição onde ela se encontra. Caso haja sucesso na busca é retornada a
posição referente, caso não é retornado um valor -1, seu retorno sempre é um número inteiro.
Sintaxe: String. indexOF (<caractere ou substring a ser localizada [posição inicial]>).
2- Manipulação de arquivos
Dados manipulados precisam ser recuperados a qualquer momento. Por este motivo devem
ser usados arquivos de dados, ou seja conjunto de dados armazenado em uma memória não volátil,
que pode ser recuperada pelo programa a qualquer instante.
Manipulação de arquivos em Java, é utilizada classes e instâncias delas (objetos) para lidar
2. com a saída e entrada de dados(input/output = io). A entrada e saída é tratada como fluxo de dados
os Stream, tendo assim um controle de fluxo. Isso tudo está no pacote java.io, que utilizamos para
manipular os arquivos de dados como: txt, dat, gif entre outros.
->Leitura e gravação de um arquivo texto:
Existem diversas maneiras de realizar a manipulação de arquivos texto. A classe
BufferedReader para a leitura do arquivo e a classe PrintWriter para gravação.
O nome do arquivo é “código da pessoa” + .”txt” e armazenado na mesma pasta em que a classe
estiver localizada.
Exemplo:
import java.io.*;
//importa o pacote
if (tfCodigo.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "O código não pode estar vazio!");
tfCodigo.requestFocus();
}
else if (tfNome.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "O nome não pode estar vazio!");
tfNome.requestFocus();
}
else if (tfEmail.getText().equals(""))
{
JOptionPane.showMessageDialog(null, "O email não pode estar vazio!");
tfEmail.requestFocus();
}
//Faz a gravação do conteúdo, sendo obrigatório o preenchimento, se não o usuário receberá uma
mensagem de erro. O método requestFocus() é responsável de fornecer o local do curso.
try
{
PrintWriter out = new PrintWriter(tfCodigo.getText()+".txt);
//Cria o arquivo
out.println(tfCodigo.getText());
out.println(tfNome.getText());
out.println(tfEmail.getText());
out.close();
JOptionPane.showMessageDialog(null, "Arquivo gravado com sucesso!");
}
catch(IOException erro)
{
JOptionPane.showMessageDialog(null, "Erro ao gravar no arquivo");
}
3. //Cria o arquivo de fluxo de saída pela classe PrintWriter, grava o arquivo pelo método println() e
fecha o arquivo pelo método close().
try
{
String arq = JOptionPane.showInputDialog(null, "Forneça o código a abrir:");
BufferedReader br = new BufferedReader(new FileReader(arq+".txt"));
tfCodigo.setText(br.readLine());
tfNome.setText(br.readLine());
tfEmail.setText(br.readLine());
br.close();
}
cath(IOException erro)
{
JOptionPane.showMessageDialog(null, "Erro ao abrir o arquivo");
}
//Ler o conteúdo pelo método readLine()
O exemplo possui três botões: um botão para Abrir o arquivo texto, outro para Gravar o
arquivo texto e outro para Limpar o conteúdo das caixas de texto. O botão Gravar é armazenado
num arquivo texto cujo nome é igual o código da pessoa com a extensão .txt. A pessoa de código
“10” é armazenada no arquivo “10.txt” e assim por diante. O botão Abrir faz o processo inverso, o
conteúdo armazenado no arquivo, cujo nome deve ser fornecido pelo usuário, é copiado para as
caixas de texto. O botão Limpar, o texto tfCodigo, tfNome e tfEmail é apagado.
Uma aplicação com funcionalidade de um editor de textos básico, onde realiza a leitura ou a
gravação de um arquivo texto o usuário pode utilizar a classe FileDialog. E ao clicar em Gravar ou
Abrir irá aparecer uma janela como a do windows, tornando possível escolher entre ser lido ou
gravado. Outras duas classes que podem ser utilizadas também são FiliWriter e FileReader que
serve para manipular um arquivo de texto.
->Leitura e Gravação de outros formatos de arquivo.
Existem outros métodos que podem ser usados para manipular tipos primitivos de dados,
tanto na leitura como na gravação de dados de um arquivo de fluxo.
Métodos para a leitura de tipos primitivos | métodos para a gravação de tipos primitivos
readBoolean() | writeBooleam()
readDouble() | writeDouble()
readFloat() | writeFloat()
readInt() | writeInt()
readLong() | writeLong()
readShort() | writeShort()
Para se utilizar esse métodos é necessário utilizar as classes DataInputStream para leitura
de dados e DataOutputStream para gravação de dados.
4. Bibliografia:
FURGERI, Sérgio. Java 6: Ensino Didático: Desenvolvendo e Implementando
Aplicações. São Paulo: Érica: 2008
5. FURGERI, Sérgio. Java 6: Ensino Didático: Desenvolvendo e Implementando Aplicações. São
Paulo: Érica: 2008