Manipular arquivo txt e condições

6 respostas
H

Olá!!!

Sou novo nesse fórum, dei uma pesquisada mas não encontrei exatamente o que estava procurando.
Gostaria de uma ajuda em manipulação de arquivo. É o seguinte:

Meu programa tem que ler um arquivo .txt, onde nesse arquivo é gerado por uma ponto eletrônico. Dados desse arquivo: Nome do funcionário, dia do mês e turno manhã e tarde ( 1 para presença e o para falta).

Nesse formato: <nome do funcionário>;<dia do mês>;<turno da manhã>;

Depois gerar um relatório com a relação de funcionários contendo o nome, discriminação dos dias e turnos em que o funcionário faltou, total de turno não trabalhado pelo funcionário e porcentagem de turno trabalhado.

Comecei o código pegando a primeira linha que contem o mês e ano:

package lerarquivo;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {

    FileInputStream stream = new FileInputStream("C:/Documents and Settings/Higor/Desktop/PPS/ArquivoPonto.txt");
    InputStreamReader streamReader = new InputStreamReader(stream);
    BufferedReader reader = new BufferedReader(streamReader);
    FileWriter fileWriter = new FileWriter("C:/Documents and Settings/Higor/Desktop/PPS/Relatório.txt");
    PrintWriter writer = new PrintWriter(fileWriter);
    String line = null;
    while((line=reader.readLine())!=null) {
    writer.println("" + line);
    writer.close();
    fileWriter.close();
    reader.close();
    streamReader.close();
    stream.close();

    }

}

}

Alguém pode me ajudar?
Agradeço!!!

6 Respostas

T

AJudar no que? Se for pra separar os dados ;; utilize os métodos indexOf(String) com o substring(int, int) ou o split(String).
Se as linhas tem o mesmo padrão, penso eu, ser melhor usar o split, exemplo:

String[] resultadoDaLinha = line.split(";");

for(int i = 0; i < resultadoDaLinha.length(); i++) System.out.print(resultadoDaLinha[i]+" ");
  System.out.println();

Tenta colocar esse pedaço de código no seu código, dentro do while só pra você ver o resultado, depois adapta pra sua necessidade.
Se não é essa a sua necessidade, desculpa o encomodo. Abraços!

H

Blz, ajudou muito numa parte do pragrama.
Valeu!!!

Agora é o seguinte:

O programa ta pegando alguns dados do aquivo .txt, agora quero alocar esses valores na memória e em seguida escrever no arquivo txt de saída.

Como posso fazer?

T

Mas pra que usar um programa que lê de um arquivo e coloca em outro? Sendo que os dois tem a mesma extensão.
Agora se for só pra escrever, você simplismente lê e ja escreve em outro arquivo, com o PrintWriter. Explica mais seu problema que posso te ajudar mais, algo como o formato certo do arquivo que vai ser lido, e do arquivo que vai ser escrito, mas repito esta sem sentido isso, melhor gravar em um banco de dados!

To aí pra ajudar, abraço!

H

Cara, é um pouco grande, se vc puder passar seu email eu mando o arquivo p vc dá uma olhada.
Pode ser?

T

[email removido]

Mackrophus

cara, voce ta querendo dividir o conteudo do site por funcionario?

Criado 21 de fevereiro de 2011
Ultima resposta 25 de fev. de 2011
Respostas 6
Participantes 3