Imput e output de ficheiros txt

10 respostas
P

Estou com problemas em ir buscar um ficheiro txt e dividilo em vários ficheiros de 100 caracteres , agora apenas consigo fazer a copia do ficheiro para outro igual não o consigo dividir em vários.

Código:
import java.io.*; 

class Copy { 
public static void main(String[] args) throws IOException { 
File inputFile = new File("PS.txt"); 
File outputFile = new File("out.txt"); 

FileReader in = new FileReader(inputFile); 
FileWriter out = new FileWriter(outputFile); 
int c; 

while ((c = in.read()) != -1) 
out.write(c); 

in.close(); 
out.close(); 
} 
}

Como posso fazer para conseguir contar os caracteres do ficheiro e ir criando vários ficheiros do mesmo tamanha. Agradecia ajuda se possivel

Como é que crio um contador para os bytes... que quando conte o tamanho pretendido grava no arquivo.. e começa a escrever outro arquivo...

Quando tento colocar um contador para dividir o ficheiro em vários txt, já não me lê o codigo, como poderei fazer de maneira a que consiga contar o numero de caracteres e mandar escrever em ficheiros diferentes.
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - AnjoSupremo[/color][/size] :joia:

10 Respostas

J

Tente assim:

import java.io.*;

class Copy {
   public static void main(String[] args) throws IOException {
      File inputFile = new File("PS.txt");
      File outputFile = new File("out.txt");

      FileReader in = new FileReader(inputFile);
      FileWriter out = new FileWriter(outputFile);
      int c;
      int conta = 0;

      while ((c = in.read()) != -1){
         out.write(c);
         conta++;
         if((conta%100)==0){
            out.close();
            outputFile = new File("out"+conta/100+".txt");
            out = new FileWriter(outputFile);
         }
      }

      in.close();
      out.close();
   }
}
P

Obrigado, resolveu o problema

P

Mais uma questão e no caso de em vez de escrever vários ficheiros apenas escreve um mas os rejistos ficam cada um em sua linha.

F
if((conta%100)==0){
            out.write(System.getProperties("line.separator"));
         }
P

Muito Obrigado resultou.

P

Como posso fazer para em vez de escrever vários registos carregar cada registo para o campo de um vector?

E

opa beleza?
você se refere a algo mais ou menos do genero... :roll:

class LoadToList {
   public static void main(String[] args) throws IOException {
      File inputFile = new File("PS.txt");

      FileReader in = new FileReader(inputFile);
      int c;
      List conta = new ArrayList();

      while ((c = in.read()) != -1){
         // adicionando o valor lido na lista
         conta.add( c );
      }
      in.close();

      System.out.println( "Foram lidos: " + conta.size() );
   }
}
:wink:

abraços

P

Com este código dá erro na linha conta.add( c ); e tenho de alterar o List conta = new ArrayList(); para ArrayList conta = new ArrayList();

P

È possivel ir guardando em cada linha com 100 caracteres em cada campo do vector ou só se consegue carregar todo o ficheiro para dentro do vector.

E

opa beleza?

bom tem como você realizar a leitura de linha de texto
do seu arquivo txt sim

...
File inputFile = new File("PS.txt");
FileReader reader = new FileReader(inputFile); 
BufferedReader leitor = new BufferedReader(reader);
...
List linhas = new ArrayList();
...
String linha = null;
while((linha = leitor.readLine())) {
    System.out.println("Linha: " + linha);
    linhas.add( linha );
}
...

seria algo mais ou menos do genero… :roll:
de uma olhada tambem neste tutorial

abraços

Criado 2 de maio de 2006
Ultima resposta 12 de mai. de 2006
Respostas 10
Participantes 4