gostaria de ler linha por linha num arquivo .txt
e adicionando num vetor o que que me for interessante na linha para poder ao fim criar um novo arquivo txt .
vcs teriam uma noção de como seria melhor fazer este exemplo.
Seria de grande ajuda não só para mim mas para muitos.
eu lembro que eu já tentei fazer algo assim… vou procurar por aqui
shadowjava
Tenta um getClass().getResource( caminho ).
eu lembro que eu já tentei fazer algo assim… vou procurar por aqui
Po cara vê isso aê pra mim
thegoergen
Tenta isso aqui…
ArrayListlinhas=newArrayList();BufferedReaderreader=newBufferedReader(newInputStreamReader(getClass().getResourceAsStream(filename)));while(true){Stringline=reader.readLine();// sem mais linhas para lerif(line==null){reader.close();break;}// adiciona as linhas importantesif(line==algoImportantePraTi){linhas.add(line);}}
Eu simplesmente copiei e colei aqui do meu arquivo, mas eu acho que funciona…
shadowjava
1. ArrayList linhas = new ArrayList();
2.
3. BufferedReader reader = new BufferedReader( new InputStreamReader(
4. getClass().getResourceAsStream( filename ) ) );
5.
6. while ( true ) {
7. String line = reader.readLine();
8. // sem mais linhas para ler
9. if ( line == null ) {
10. reader.close();
11. break;
12. }
13.
14. // adiciona as linhas importantes
15. if ( line == algoImportantePraTi ) {
16. linhas.add( line );
17. }
18. }
Onde vc está trabalhando o ArrayList neste exemplo!
thegoergen
Na linha 16 eu adiciono a linah importante nele…
Aqui eu pegava as linhas que não começavam com “#”, porque eu não queria elas.
[EDIT]
OOOOps… eu alterei o código antes de postar, eu testo num IF, se for algoImportantePraTi, adiciona a linha no ArrayList…
Depois disso, você tem um Arraylist com todas as linhas importantes, e precisa gravá-las em um outro arquivo…
Talvez não tenha entendido a pergunta… :oops:
LPJava
shadowjava:
Editado
Olá Amigos !
Tenho um probleminha que gostaria de ajuda
gostaria de ler linha por linha num arquivo .txt
e adicionando num vetor o que que me for interessante na linha para poder ao fim criar um novo arquivo txt .
vcs teriam uma noção de como seria melhor fazer este exemplo.
Seria de grande ajuda não só para mim mas para muitos.
Muito obrigado!!!
o que vc ja implementou e que parte ficou com duvida?
thegoergen
Depois, você pega o ArrayList e grava num novo arquivo:
try{FileOutputStreamoStream=newFileOutputStream(nomeDoNovoArquivo);// ou usando um File com argumentoOutputStreamWriterwriter=newOutputStreamWriter(oStream);//Escreve todo o ArrayList...for(inti=0;i<linhas.size();i++){writer.write(linhas.get(i).toString()+"\n");}writer.flush();// gravawriter.close();// fecha}catch(Exceptione){e.printStackTrace();}
Talvez não compile, porque fiz agora aqui… mas a idéia é essa… hehehe
M
mr.zanini
Estou só não sei como gravar somente as linhas que vc quer... nesse código estou copiando o arquivo inteiro de acordo com a linha e a posição que selecionei.
for(inti; i < lista.size(); i++){ Layoutlayout=lista.get(i); //esteifnãoestafazendonadaaquipoistemum; no final deleif(layout.tipo="VARCHAR2"); }//pstmt.setString(i,line.substring(lay.min,lay.max)); //elsesemoif???ouintaoondeestaoif?erapraseraqueleládecima?masdaiistodevetardentrodofor.else{(layout.tipo="DATE")}
shadowjava
Pronto galera , achei a definição do que queria e não estava conseguindo explicar?
Leroarquivo****_layout.txt
CriarumaarraydeobjetodotipoLayout.
Paracadalinhadoarquivo****_layout.txt
a. Criar um objeto Layout setando os atributos (Coluna,Tamanho,Inicio,Fim,Tipo)
b. Adicionar esse objeto num array ou lista de objetos Layout
E agora, o que você já fez até agora? Não precisa colocar todo o código, só nos dê uma visão geral do algoritmo e coloque as partes do código com dúvida. Aquele código ali em cima estava totalmente errado…
shadowjava
Bem vamos lá !
por enquanto já fiz as seguintes tarefas:
Já criei uma classe encapsuladora com os gets e sets chamada layout .
e a classe manipulando_arquivos
parte do código!
importjava.io.*;// * entrada e saída de dados * //importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;publicclassManipulando_Arquivos{publicstaticvoidmain(Stringargs[]){newManipulando_Arquivos().executar();}publicvoidexecutar(){Connectioncon=null;PreparedStatementpstmt=null;Stringsql="INSERT INTO TB_TIPO_LEITO VALUES (?,?,?,?)";// variavel do BD//Listlista=newArrayList();// instanciando o ArrayListtry{// um try de leitura //FileInputStreamstream=newFileInputStream("C:\Tabelas\tb_tipo_leito_layout.txt");InputStreamReaderstreamReader=newInputStreamReader(stream);BufferedReaderreader=newBufferedReader(streamReader);Stringline=null;// variavel line con=getConnection();// metodo de conexão //while((line=reader.readLine())!=null){System.out.println(line.split(","));Layoutlay=newLayout();Stringcoluna;lay.setColuna(coluna);intfim;lay.setFim(fim);inttamanho;lay.setTamanho(tamanho);intinicio;lay.setInicio(inicio);Stringtipo;lay.setTipo(tipo);lista.add(lay);// add do ArrayList}
shadowjava
Me mostrem o erro que se encontra agora
for(inti; i < lista.size(); i++){ Layoutlayout1=(Layout)lista.get(i); //esteifnãoestafazendonadaaquipoistemum; no final//deleif(layout1.getTipo()="VARCHAR2"); elseif(layout.getTipo()="DATE"); }}
não consigo achar o erro , me deu um branco aqui :lol:
thegoergen
O erro está aqui:
if(layout1.getTipo()="VARCHAR2");
Tira aquele “;”
shadowjava
O erro persiste
// abrir o arquivo de layoutLayoutlayout=newLayout();for(inti;i<lista.size();i++){Layoutlayout1=(Layout)lista.get(i);// este if não esta fazendo nada aqui pois tem um ; no final// deleif(layout.getTipo()="VARCHAR2")}else{if(layout.getTipo="DATE")}}
:cry:
shadowjava
Sobre a list ade tarefas como faço essa parte
a. Criar um objeto setando os atributos ( Coluna, tamanho , inicio , fim , tipo ) // até aqui ok
b. Adicionar um objeto num array ou lista de objetos Layout // não entendi
thegoergen
Faz assim para criar um array:
Layout[]L;
Ou assim para um List ( Java 1.5 ):
List<Layout>L=newArrayList<Layout>();
jingle
shadowjava:
O erro persiste
// abrir o arquivo de layoutLayoutlayout=newLayout();for(inti;i<lista.size();i++){Layoutlayout1=(Layout)lista.get(i);// este if não esta fazendo nada aqui pois tem um ; no final// deleif(layout.getTipo()="VARCHAR2")}else{if(layout.getTipo="DATE")}}
:cry:
bom amigo pra pelo menos copilar tente algo assim mas não sei que pretende fazer com isto
try{Connectioncon1;con.close();Connectionpstmt1;pstmt.close();}catch(SQLExceptione){e.printStackTrace();}catch(Exceptione){e.printStackTrace();// ESTÁ DANDO ERRO NESTE PONTO E VIRGULA//}
thegoergen
Esqueça tokenizer.
Com split ele não é necessário
jingle
shadowjava:
[off]
outra duvida no exercicio , agora com try e catch
try {
Connection con1;
con.close();
Connection pstmt1;
pstmt.close();
}
catch (SQLException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace(); // ESTÁ DANDO ERRO NESTE PONTO E VIRGULA//
}
não tem nada de errado nesta no ";" que você disse ai.
única coisa que pode ter erro ai é no nome das varáveis ali em cima mas isto se elas não tiverem sido declaradas antes.