Galera sou novo aqui por isso não sei muito bem como criar um novo tópico espero que esteja correto.
Minha dúvia e a seguinte estou criando uma classe para manipular texto de um arquivo para outro.
O básico já consegui fazer que é abrir ler o texto e gravar em outro texto.
O problema está quando preciso manipular de fato o texto.
Preciso pegar um trecho do texto original e recorta para o outro texto ex.:
arquivo1.txt
Primeiro linha
CO9textoinserido
maistexto
maistexto
CO9quebralinha
maistextomaistexto
CO9maisumaquebra
maistexto
arquivo2.txt
Primeira linha
CO9textoinserido
maistexto
maistexto
arquivo3.txt
CO9quebralinha
maistextomaistexto
O arquivo1.txt e grande e preciso quebra ele em varios texto menores separando ele pelos 3 primeiros caracteres “CO9”.
estou usando SubString para pegar os 3 primeiros caracteres mas não sei como pegar uma parte do texto indo de um ponto até ou outro a quebra será sempre no “CO9”
Alguém poderia me dar uma luz.
Obrigado
Olá, não sei se entendí bem sua dúvida, tente usar \n
para pular/quebrar linha.
Obrigado pelas resposta.
Tentei usar o StringTokenizer mais ele não está pegando de um ponto até o outro pelo que eu entedi o StringTokenizer ou split ele só pega a linha com o parametro que vc passa.
eu gostaria de pegar uma parte do texto de um parametro até o outro.
No seu caso, provavelmente você tem de fazer algo como:
para cada linha do arquivo de entrada
ler a linha
se ela começar por CO9,
fechar o arquivo de saída, se houver algum arquivo aberto,
criar um novo arquivo de saída
gravar a linha
senão
gravar a linha no arquivo de saída corrente.
Não tem expressão regular nem nada nessa história. Basicamente é só você fazer algo bem braçal mesmo.
quando faço o if ele pega apenas as linhascom C09.
O que preciso é que ele pegue de um C09 até o outro.
pegando assim um bloco de caracteres.
galera,
Ainda o mesmo problema preciso pegar um trecho do texto onde ele começa com C09 e vai até o proximo C09.
o programa tem que pegar de um C09 até outro.
Alguém tem alguma dica de como posso compara de um até outro valor.
obrigado
[quote=sandro.ci02]Cara voce pode usar
http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html[/quote]
Putz, dá até tristeza ver gente no GUJ ainda recomendando o StringTokenizer, sendo que o próprio Javadoc dele diz que ele não deveria ser mais usado.
Mago ice, a lógica a seguir faz mais ou menos o que você quer:
int index = texto.indexOf("C09");
while (index != -1) {
String trecho = texto.substring(0, index);
processar(trecho); //Esse é um método que vc implementa, que vai tratar o trecho separado.
texto = texto.substring(index+3);
index = texto.indexOf("C09");
}
processar(texto);
Godoy,
é quase isto mesmo que preciso como vc disse
Mas quando pego o trecho para tratar ele vem sem o C09 é preciso deste código.
É possivel pegar um trecho completo com o código C09 ou depois que quebrar o texto preciso colocar o código de novo na primeira linha.
Grato
Você pode concatenar o trecho “C09” antes de colocar no arquivo o trecho capturado.
como está o codigo até o momento
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.*;
public class Teste {
public static void main(String[] args){
try{
FileReader reader = new FileReader("C:\LeituraTeste.txt");
BufferedReader leitor = new BufferedReader(reader);
String texto;
while((texto = leitor.readLine()) != null){
int index = texto.indexOf("C09");
System.out.println(index);
while (index != -1) {
String trecho = texto.substring(0, index);
System.out.println(trecho);
texto = texto.substring(index + 1);
index = texto.indexOf("C09");
}
}
}catch (Exception e) {
// TODO: handle exception
}
}
}
mais a logica usando o while para leitura do arquivo while((texto = leitor.readLine()) != null) não está funcionando.
alguem tem alguma dica?