package br.edu.pitagoras.oda.arquivo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ProgramaExercicio1 {
// 1) Problema 1 (Fácil)
// Entrada: um caractere e um arquivo texto (nome)
// Saída: informar a quantidade de vezes que
// o caractere ocorre no arquivo
public static void main(String[] args) {
// solucao
// 1) definir a entrada de dados: caractere e nome do arquivo
char c = 'a';
String nomeArquivo = "teste.txt";
try {
contarCharEmArquivo(c, nomeArquivo);
} catch (FileNotFoundException e) {
System.out.println("ERRO: arquivo " + nomeArquivo +
" não existe!");
e.printStackTrace();
} catch (IOException e) {
System.out.println("ERRO: erro de leitura do arquivo!");
e.printStackTrace();
}
}
// casos de teste
// 1) arquivo informado nao existe -> mensagem de erro
// 2) arquivo vazio -> sem erros, contador zero
// 3) arquivo com dados -> sem erros, contador com valor correto
// 4) arquivo sem permissao para leitura - mensagem de erro
static void contarCharEmArquivo(char c, String nomeArquivo)
throws FileNotFoundException, IOException {
// 2) abrir o arquivo
InputStream is = new FileInputStream(nomeArquivo);
// 3) Se o arquivo nao existir
// 3.1) exibir uma mensagem de erro
// 4) Senao
// 4.1) Abrir o arquivo para leitura de caracteres
InputStreamReader isr = new InputStreamReader(is);
// 4.2) Ler o primeiro caractere
int d = isr.read();
int count = 0;
// 4.3) Enquanto nao for fim de arquivo
while (d != -1){
// 4.3.1) Se o char lido for igual a char informado
if (d == c){
// 4.3.1.1) incrementar o contador de caracteres
count++;
}
}
// 4.4) Exibir a quantidade de vezes que o char ocorre
System.out.println("Buscando pelo caractere " + c +
" no arquivo " + nomeArquivo + " ...");
System.out.println("Quantidade de vezes: " + count);
// 4.5) fechar o arquivo
isr.close();
}
}
package br.edu.pitagoras.oda.arquivo;
public class ProgramaExercicio2 {
// 2) Problema 2 (Fácil)
// Entrada: uma palavra e um arquivo (nome)
// Saída: informar a quantidade de vezes que a
// palavra ocorre no arquivo
// Apresentar:
// - solução em algoritmo
// - código fonte em Java
// - casos de testes a serem testados
// http://www.yuml.me/8c3df1a2
// http://www.yuml.me/edit/8c3df1a2
public static void main(String[] args) {
}
public static int countPalavraEmArquivo(
String palavra, String nomeArquivo){
// solucao
// 1)
return 0;
}
}
package br.edu.pitagoras.oda.arquivo;
import static org.junit.Assert.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.Test;
public class TesteProgramaExercicio1 {
@Test
public void testArquivoNaoExiste() {
// caso de teste 1: arquivo nao existe
char c = 'a';
String nomeArquivo = "blah.txt";
ProgramaExercicio1 ex1 = new ProgramaExercicio1();
try {
ex1.contarCharEmArquivo(c, nomeArquivo);
fail("Erro nao ocorreu");
} catch (FileNotFoundException e) {
System.out.println("Erro esperado");
} catch (IOException e) {
fail(e.getMessage());
e.printStackTrace();
}
}
@Test
public void testArquivoVazio(){
}
@Test
public void testArquivoComDados(){
}
}
Nenhum comentário:
Postar um comentário