Montei uma classe para ler cada linha de um arquivo, porém devo colocar algumas condições dependendo do caracter encontrado por linha. ex:
[quote][menu]
exten => s,1,SetLanguage (br)[/quote]
isso deverá ser separado assim
[quote]contex=menu
exten=s
priority=1
app=SetLanguage
arg=(br)[/quote]
Ou seja: Quando na linha for encontrado o caracter “[” ele deverá escrever o que estiver na frente deste mesmo caracter até encontrar este “]”
e assim por diante que será as outras condições.
Alguem pode dar uma ajuda ai?
Acho melhor vc usar a classe StringTokenizer , vai pulando em caracter em seguida linha em linha buscando os [ e ]
o problema é q nunca utilizei nenhuma destas 2 classes… nao sei como implementar no meu código…
Vc esta pegando esses dados em um arquivo?
fileTcs = new File(pathTCS);
FileReader fr = new FileReader(fileTcs);
BufferedReader br = new BufferedReader(fr);
String linha = null;
while ((linha = br.readLine()) != null)
{
StringTokenizer st = new StringTokenizer(linha);
while (st.hasMoreTokens())
{
System.out.println(st.nextToken());
}
}
vou ti mandar meu código aqui da uma olhada como ficou:
[code]import java.io.*;
import java.util.Scanner;
import java.util.StringTokenizer;
public class LeArquivos {
/**este arquivo irá ler o arquivo em questão
* e irá interpretar cada linha para depois apresentar
na tela para o usuário*/
public static void main(String[] args) {
Scanner sc;
FileInputStream fi;
File f;
String temp;
try
{
f = new File("c:\arquivo.txt");
fi = new FileInputStream(f);
sc = new Scanner(fi);
while ( sc.hasNextLine() )
{
temp = sc.nextLine();
StringTokenizer st = new StringTokenizer(temp);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
// System.out.println(temp);
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
[/code]
O problema é que tenho que colocar identico a este formato quando eu apresentar: exemplo esta acumulado este valor:
[quote][menu]
exten => s,1,SetLanguage (br) [/quote]
deverá aparecer assim:
[quote]contex=menu
exten=s
priority=1
app=SetLanguage
arg=(br)[/quote]
E como saiu?
Dentro do while StringTokenizer vc coloca a sua lógica …
saiu desta for
[quote][menu]
;================================
exten
=>
s,n,SetLanguage
(br)[/quote]
vou ter de executar varias outras coisas na verdade… peq este EXTEN irá acumular valores na sequencia… um array… ele tera q acumular até acabar linha.