Tratamento de arquivo .txt

Java

01/05/2016

Saudações,
Estou tentando criar uma classe que receba um arquivo ".txt" e consiga extrair dele algumas informações, o conteudo do arquivo tem este formato:

1#Joao#25/10/10#100000#2532552
1#Joao#25/10/10#100000#2532552
1#Joao#25/10/10#100000#2532552
1#Joao#25/10/10#100000#2532552
2#Paulo#25/10/10#100000#2532552
2#Paulo#25/10/10#100000#2532552
2#Paulo#25/10/10#100000#2532552
2#Paulo#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
3#Roberto#25/10/10#100000#2532552
4#Cobrou#25/10/10#100000#2532552
6#Devo#25/10/10#100000#2532552
9#Pago se puder#25/10/10#100000#2532552
4#Cobrou#25/10/10#100000#2532552
7#Nao Nego#25/10/10#100000#2532552
5#Pagou#25/10/10#100000#2532552
5#Pagou#25/10/10#100000#2532552
5#Pagou#25/10/10#100000#2532552
5#Pagou#25/10/10#100000#2532552

O código deve criar um arquivo de texto para cada idenficador, representado pelo primeiro elemento da linha, e registrar o conteudo daquela linha no arquivo de texto criado.
Infelizmente so consigo armazenar o registro da primeira linha no arquivo "tratados1.txt", os arquivos restantes são criados mas estão todos em branco.

Estou precisando de ajuda, obrigado.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package tratar.arquivo;

import java.io.*;
import java.util.Date;
import javax.swing.JOptionPane;

/**
 *
 * @author MASTER
 */
public class TratarArqv {

    public void leitor(File file) throws IOException {
        Date data = new Date();
        String arquivoSaida1 = "C:\\teste java\\tratados1.txt";
        String arquivoSaida2 = "C:\\teste java\\tratados2.txt";
        String arquivoSaida3 = "C:\\teste java\\tratados3.txt";
        String arquivoSaida4 = "C:\\teste java\\tratados4.txt";
        String arquivoSaida5 = "C:\\teste java\\tratados5.txt";
        String arquivoSaida6 = "C:\\teste java\\tratados6.txt";
        String arquivoSaida7 = "C:\\teste java\\tratados7.txt";
        String arquivoSaida8 = "C:\\teste java\\tratados8.txt";
        String arquivoSaida9 = "C:\\teste java\\tratados9.txt";
        BufferedReader reader;
        
        BufferedWriter writer1 = new BufferedWriter(new FileWriter(arquivoSaida1));
        BufferedWriter writer2 = new BufferedWriter(new FileWriter(arquivoSaida2));
        BufferedWriter writer3 = new BufferedWriter(new FileWriter(arquivoSaida3));
        BufferedWriter writer4 = new BufferedWriter(new FileWriter(arquivoSaida4));
        BufferedWriter writer5 = new BufferedWriter(new FileWriter(arquivoSaida5));
        BufferedWriter writer6 = new BufferedWriter(new FileWriter(arquivoSaida6));
        BufferedWriter writer7 = new BufferedWriter(new FileWriter(arquivoSaida7));
        BufferedWriter writer8 = new BufferedWriter(new FileWriter(arquivoSaida8));
        BufferedWriter writer9 = new BufferedWriter(new FileWriter(arquivoSaida9));
        reader = new BufferedReader(new FileReader(file));
        String linha = reader.readLine();
            
            while (linha != null) {
                String te[] = new String[5];
                te = linha.split("#");
                if (1==Integer.parseInt(te[0])) {
                    writer1.write(linha + "\n");
                    writer1.flush();
                }
                if (Integer.parseInt(te[0])==2) {
                    writer2.write(linha + "\n");
                    writer2.flush();
                }
                if (Integer.parseInt(te[0])==3) {
                    writer3.write(linha + "\n");
                    writer3.flush();
                }
                if (Integer.parseInt(te[0])==4) {
                    writer4.write(linha + "\n");
                    writer4.flush();
                }
                if (Integer.parseInt(te[0])==5) {
                    writer5.write(linha + "\n");
                    writer5.flush();
                }
                if (Integer.parseInt(te[0])==6) {
                    writer6.write(linha + "\n");
                    writer6.flush();
                }
                if (Integer.parseInt(te[0])==7) {
                    writer7.write(linha + "\n");
                    writer7.flush();
                }
                if (Integer.parseInt(te[0])==8) {
                    writer8.write(linha + "\n");
                    writer8.flush();
                }
                if (Integer.parseInt(te[0])==9) {
                    writer9.write(linha + "\n");
                    writer9.flush();
                } else {
                    break;
                }
            }
            reader.close();
            writer1.close();
            writer2.close();
            writer3.close();
            writer4.close();
            writer5.close();
            writer6.close();
            writer7.close();
            writer8.close();
            writer9.close();
        }
        
}


Henrique Lemos

Henrique Lemos

Curtidas 0

Melhor post

Henrique Lemos

Henrique Lemos

01/05/2016

Boa tarde, sim, a intenção é dividir um arquivo em vários outros, através do identificador que vem antes do sustenido no começo da linha, estou até agora tentando, já consegui avançar um pouco mais, agora ele cria sim arquivos referentes aos identificadores, mas não coloca o conteúdo correto dentro deles.
segue o código atual:
[code]/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package split;

/**
*
* @author PURE
*/
import java.io.*;
import java.util.Scanner;

public class Split {

public static void main(String args[]) {
try {
// Reading file and getting no. of files to be generated
String inputfile = "C:\\teste java\\recebidoSvr.txt"; // caminho do arquivo;
File file = new File(inputfile);
Scanner scanner = new Scanner(file);
int count = 0;
while (scanner.hasNextLine()) {
scanner.nextLine();
count++;
}
System.out.println("Lines in the file: " + count); // Mostra quantas linhas tem o arquivo;



//---------------------------------------------------------------------------------------------------------
// Actual splitting of file into smaller files
FileInputStream fstream = new FileInputStream(inputfile);
DataInputStream in = new DataInputStream(fstream);

BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine = br.readLine();
String vetor[] = new String[5];
vetor = strLine.split("#");

while(strLine.startsWith("1")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 1 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}

out.close();
}
while(strLine.startsWith("2")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 2 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("3")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 3 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("4")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 4 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("5")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 5 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("6")){
FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 6 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("7")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 7 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("8")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 8 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);
strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}
while(strLine.startsWith("9")){

FileWriter fstream1 = new FileWriter("C:\\teste java\\" + 9 + ".txt", true); // destino do arquivo
BufferedWriter out = new BufferedWriter(fstream1);

strLine = br.readLine();
if (strLine != null) {
out.write(strLine + System.getProperty("line.separator"));
}
else {
out.newLine();
}
out.close();
}


in
GOSTEI 1

Mais Respostas

Marcos Paulo

Marcos Paulo

01/05/2016

Boa tarde, ele gera vários arquivos?
GOSTEI 0
Henrique Lemos

Henrique Lemos

01/05/2016

up, alguma alma caridosa por favoor :3
GOSTEI 0
POSTAR