Ir ao conteúdo
  • Cadastre-se
João Pedro A.Carvalho

Manipulação de arquivos

Recommended Posts

Boa noite pessoal. Estou com uma dúvida em relação ao java, gostaria de saber se há como armazenar um texto em arquivo txt em um vetor dinâmico. Gostaria de saber como fazer isso, também gostaria de saber que se caso  tenha como, como fazer para armazenar a partir da linha q eu escolher 

 

exemplo:  Boa noite, como vai?

                 Eu vou bem, e você?    //<-- gostaria de armazenar a partir desta segunda linha

                 ......

 

 

OBS: não estou pedindo q façam para mim, mas que me orientem, dando dicas, porém se quiser fazer e posta o print , ficaria muito grato

                   

Editado por João Pedro A.Carvalho
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

não entendi muito bem o que você quer, mas no geral a resposta é: sim, tem como.

 

Você pode ler linha a linha de um arquivo. Também pode gravar linha a linha.

Logo, se você souber "interpretar" o conteúdo de cada linha, você pode ler e gravar as linhas que achar interessante.

 

Recomendo usar as classes: BufferedReader para ler e Writer para gravar, já que irá ler e gravar texto.

Também recomendo definir explicitamente um charset, como UTF8.

 

Exemplo de leitura (não testei):

FileInputStream fileIn = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fileIn, "UTF8"));
LinkedList<String> linhas = new LinkedList();
String linha = null;
while((linha = reader.readLine()) != null) {
  linhas.add(linha);
}
fileIn.close();
// Se precisar em array use: linhas.toArray(new String[linhas.size]);

O resultado é a lista linhas. Se precisar em array, use o código acima para converter.

 

Exemplo de escrita (também não testei):

FileOutputStream fileOut = new FileOutputStream(file);
Writer writer = new OutputStreamWriter(fileOut, "UTF8");
for(String linha : linhas) {
  writer.write(linha);
  writer.write("\r\n"); // Isso faz pular linha (modo windows)
}
writer.flush(); // Faça isso, pois o writer tem buffer
fileOut.close();

A entrada é a variável "linhas" que pode ser tanto uma lista como um vetor. Apenas esses dados irá para o arquivo.

O modo de quebra de linha foi colocado como o modo utilizado no windows CrLf (\r\n). Se for usar no Linux, pode usar apenas \n.

 

Em ambos casos, a variável file indica o nome do arquivo ou objeto do tipo File que é o destino.

Editado por brunohpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×