Tratamento de arquivo .txt
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.
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
Curtidas 0
Melhor post
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
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
01/05/2016
Boa tarde, ele gera vários arquivos?
GOSTEI 0
Henrique Lemos
01/05/2016
up, alguma alma caridosa por favoor :3
GOSTEI 0