Boa tarde para todos
eu estou com um problema que é o seguinte:
Eu preciso abrir uma serie de arquivos TXT,retirar apenas uma parte do texto de cada um desses arquivos e salvo-los em um outro arquivo TXT(um arquivo Unico).
Exemplificar para vocês
Todos os TXT tem um cabeçalho
uma serie de caminhos(diretorios)
e mais uns textos no final
eu preciso retirar apenas esses caminhos e salva-los em um outro arquivo txt.
Mas cada arquivo tem um numero de caminhos diferentes,entao preciso encontrar alguma forma
do codigo conseguir reconhecer quando que termina esses diretorios.
Para facilitar um pouco vou mostrar mais ou menos como é a estrutura desses arquivos TXT.
CABELHOFIXO Em todos os arquivos
“c:\arquivos\nomeArquivo.txt”
“c:\documentos\Texto.txt”
Texto finalFIXO
todos os caminhos estao entre " ",se isso ajudar de alguma forma!
Muito Obrigado
Bruno Motta
Se todos os nomes de arquivo começam por ", então faça algo como:
linha=...; // fica como exercício você conseguir ler uma linha - dica: procure por BufferedReaderif(linha.charAt(0)=='\"'){
...//tratarnomesdearquivos.
}
kaique
Dá uma estudada em expressões regulares que você resolve facin o seu problema…
[]'s.
M
mottoca
Boa tarde
eu consegui abrir um arquivo e salva-lo em outro
mas eu preciso abrir VARIOS arquivos e salvar em um unico arquivo
e não to conseguindo!
se alguem poder passar um codigo pra resolver esse problema
Muito Obrigado
Bruno Motta
M
mottoca
Tenho certeza que eu quero hehe,
pq eu sou estagiario na area de banco de dados ai depois de ter esse codigo eu vou fazer a manipulaçao desses arquivos no oracle,ai essa parte eu ja sei,mas em programaçao eu sou uma negaçao.
Se poder me ajudar
Obrigado
FileFilterfilter=newFileFilter(){publicbooleanaccept(Filefile){returnfile.getName().endsWith(".txt");}};Filedir=newFile("C:/Documents and Settings...");File[]files=dir.listFiles(filter);for(inti=0;i<files.length;i++){System.out.println(files[i]);}FileInputStreamstream=newFileInputStream("Teste1.txt");InputStreamReaderstreamReader=newInputStreamReader(stream);BufferedReaderreader=newBufferedReader(streamReader);FileWriterfileWriter=newFileWriter("Teste3.txt");PrintWriterwriter=newPrintWriter(fileWriter);// Neste while lemos o arquivo linha a linhaStringline=null;while((line=reader.readLine())!=null){/* * Para pegar apenas uma parte do texto Por parte do Texto *//*String novaLinha = (String) line.subSequence(6, 11); writer.println(novaLinha);*//* * Para pegar apenas uma parte do texto SE encontrar o Texto dentro do Boolean *//* boolean novaLinha = line.contains("Bruno"); if (novaLinha == true){ String conteudo = (String) line.subSequence(0, 5); writer.println(conteudo); }*/}// fechando os objetos de io:writer.close();fileWriter.close();reader.close();streamReader.close();stream.close();
}
}
Esse é o codigo q eu ja escrevi,mas eu so consigo tirar o texto de um arquivo e salva-lo em outro,como q faz para abrir todos os arquivos e salvar em apenas um,e alem disso eu preciso tirar apenas uma parte do texto,por favor me ajudem!
M
mottoca
E tem uma outra questao,eu naum sei O nome das arquivos que eu quero abrir,ele tem q abrir todos os .txt que tiver no diretorio
Ajudem-me
ABraços
M
mottoca
Opa,infelizmente so resolveu parcialmente o problema,pq ele naum pega o texto e vai salvando no arquivo “Teste3.txt” apenas o conteudo do ultimo arquivo lido q é armazenado no “Teste3”,eu precisava salva o conteudo de todos os arquivos
Obrigado pela atençao!
M
mottoca
Bom dia rdgc,vc ta me ajudando muito,obrigado
so preciso de mais uma ajudinha,para pegar o caminho dentro dos arquivos .txt,eu nao sei como fazer,usando expressao regular,ou algo do genero,se puder me ajudar.
os caminhos estao sempre entre aspas,mas as vezes tem 4 linhas de texto antes e 5 caminhos,outras pode ter 3 linhas de texto e 9 diretorios e depois mais linhas de texto.
Obrigado
M
mottoca
Ex 1.
Conteudo do Arquivo .Wor que indica ponteiros de layers utilizados
“C:/Arquivos de Programas/Doc/Layer1.info”
“C:/Windows/System/Temp/Codido/camada.sis”
Fim do arquivo .Wor
Ex2.
Arquivo .Wor utilzado por mapinfo Versao 9.5
Presente nos diretorios primarios do HD
“Z:/Teste.info”
“D:/Meus Documentos/Arquivos/Layer54.map”
“C:/ArquivosWor/Mapas/Otto.info”
Esses ponteiros estao sendo utilizados
Fim do arquivo .Wor
Versao 3.14
Eles sao desta forma o unico padrao é que os caminhos estao sempre Entre " " e as aspas so aparecem quando vao indicar os caminhos.
R
rdgc
thingol:
Se todos os nomes de arquivo começam por ", então faça algo como:
linha = ...; // fica como exercício você conseguir ler uma linha - dica: procure por BufferedReader
if (linha.charAt(0) == '\"') {
... // tratar nomes de arquivos.
}
Se vc estiver utilizando java 5/6, procure pelo Scanner em vez do BufferedReader. Acho mais simples de usar, mas pelo que me lembro, gasta um pouco mais de memória.
flws!
R
rdgc
mottoca:
se alguem poder passar um codigo pra resolver esse problema
Muito Obrigado
Bruno Motta
Passar código??? :shock: Tem certeza? :shock:
Mas, se vc precisa abrir VÁRIOS arquivos e gravar em apenas UM, leia sua lista de arquivos no diretório (classe File deve te ajudar), depois para cada arquivo que vc abriu, leia todas as linhas gravando no arquivo novo. Não esqueça de fechar o arquivo novo só depois de ler toda sua lista de arquivos.
flws!
R
rdgc
Coloque toda a manipulação do arquivo dentro do seu for, e substitua onde está Teste1.txt pelo files[i].
Acho que isso resolve.
R
rdgc
mottoca:
Opa,infelizmente so resolveu parcialmente o problema,pq ele naum pega o texto e vai salvando no arquivo “Teste3.txt” apenas o conteudo do ultimo arquivo lido q é armazenado no “Teste3”,eu precisava salva o conteudo de todos os arquivos
Obrigado pela atençao!
Abra o arquivo Teste3.txt antes do for e feche apenas no fim da execução do programa (depois de fechar o for), assim ele vai gravar tudo.
flws!
R
rdgc
mottoca:
Bom dia rdgc,vc ta me ajudando muito,obrigado
so preciso de mais uma ajudinha,para pegar o caminho dentro dos arquivos .txt,eu nao sei como fazer,usando expressao regular,ou algo do genero,se puder me ajudar.
os caminhos estao sempre entre aspas,mas as vezes tem 4 linhas de texto antes e 5 caminhos,outras pode ter 3 linhas de texto e 9 diretorios e depois mais linhas de texto.
Obrigado
Poste um exemplo do formato do seu arquivo… fica mais fácil.
[]'s
R
rdgc
mottoca:
Ex 1.
Conteudo do Arquivo .Wor que indica ponteiros de layers utilizados
"C:/Arquivos de Programas/Doc/Layer1.info"
"C:/Windows/System/Temp/Codido/camada.sis"
Fim do arquivo .Wor
Ex2.
Arquivo .Wor utilzado por mapinfo Versao 9.5
Presente nos diretorios primarios do HD
"Z:/Teste.info"
“D:/Meus Documentos/Arquivos/Layer54.map”
"C:/ArquivosWor/Mapas/Otto.info"
Esses ponteiros estao sendo utilizados
Fim do arquivo .Wor
Versao 3.14
Eles sao desta forma o unico padrao é que os caminhos estao sempre Entre " " e as aspas so aparecem quando vao indicar os caminhos.
Faça o que o thingol falou, sempre que ler uma linha, verifiquei se começa com aspas.