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 BufferedReader
if (linha.charAt(0) == '\"') {
... // tratar nomes de arquivos.
}
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
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
public static void main (String [] args) throws Exception{
/*
Abrir todos os arquivos de um diretorio
*/
FileFilter filter = new FileFilter() {
public boolean accept(File file) {
return file.getName().endsWith(".txt");
}
};
File dir = new File("C:/Documents and Settings...");
File[] files = dir.listFiles(filter);
for(int i =0; i<files.length;i++){
System.out.println(files[i]);
}
FileInputStream stream = new FileInputStream("Teste1.txt");
InputStreamReader streamReader = new InputStreamReader(stream);
BufferedReader reader = new BufferedReader(streamReader);
FileWriter fileWriter = new FileWriter("Teste3.txt");
PrintWriter writer = new PrintWriter(fileWriter);
// Neste while lemos o arquivo linha a linha
String line = 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!
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!
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
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.
[quote=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.
}
[/quote]
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.
[quote=mottoca]
se alguem poder passar um codigo pra resolver esse problema
Muito Obrigado
Bruno Motta[/quote]
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.
[quote=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![/quote]
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.
[quote=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
[/quote]
Poste um exemplo do formato do seu arquivo… fica mais fácil.
[]'s
[quote=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.[/quote]
Faça o que o thingol falou, sempre que ler uma linha, verifiquei se começa com aspas.