Ajuda com IO

oi pessoal, criei um metodo fatiador, um metodo leitor() e um metodo salvar
o metodo ler() é chamado dentro de salvar()
e o metodo part() fatia a String content que tambem está em salvar()

o que ocorre é que se cria o arquivo xls porém o arquivo txt chamado(“paulo;pinto;ferreira”)
nao é fatiado em celulas diferentes, pior: da null!!

peço ajuda

grande abraço

[code]

  1. import java.awt.Font;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import javax.swing.JFileChooser;
  9. public class C1{
  10. File f;  
    
  11. String ler;  
    
  12. //METODO FATIADOR  
    
  13. public String part(String a){  
    
  14.     String[]b = a.split(";");  
    
  15.         for(int x =0;x <=4; x++){  
    
  16.             System.out.println(b[x].toString());  
    
  17.         }  
    
  18.         return a;     
    
  19. }  
    
  20. //LE ARQUIVO TXT  
    
  21. public String ler(){  
    
  22.     JFileChooser choo = new JFileChooser();  
    
  23.     int res = choo.showOpenDialog(choo);  
    
  24.         if(res == JFileChooser.APPROVE_OPTION){  
    
  25.            f = choo.getSelectedFile();  
    
  26.         }  
    
  27.         try{   
    
  28.             BufferedReader l = new BufferedReader(new FileReader(f));  
    
  29.                 while(l.readLine() != null){  
    
  30.                     ler = l.readLine();  
    
  31.                     System.out.println(ler);  
    
  32.                 }  
    
  33.         }  
    
  34.         catch(Exception e){  
    
  35.             e.printStackTrace();  
    
  36.         }  
    
  37.         return ler;  
    
  38. }  
    
  39.  //SALVA EM ARQUIVO XLS  
    
  40.  public void salvar(){  
    
  41.      String l = ler();  
    
  42.      JFileChooser choo = new JFileChooser();  
    
  43.      int res = choo.showSaveDialog(choo);  
    
  44.      if(res == JFileChooser.APPROVE_OPTION){  
    
  45.          f = choo.getSelectedFile();  
    
  46.          String novo = f.getAbsolutePath().concat(".xls");  
    
  47.          String content = part(l); // USANDO METODO FATIADOR  
    
  48.          File fileN  = new File(novo);  
    
  49.              try{  
    
  50.              FileWriter ff = new FileWriter(fileN);  
    
  51.              ff.append(content);  
    
  52.              ff.close();  
    
  53.              }  
    
  54.              catch(IOException e){}   
    
  55.      }  
    
  56.  }  
    
  57. public static void main(String[] args){    
    
  58.         C1 C = new C1();  
    
  59.         C.salvar();  
    
  60. }  
    
  61. } [/code]

kra explica melhor, não consegui entender…

tenho um arquivo txt qualquer
quero pegar seu conteudo
e salvar num arquivo xls

ele cria o arquivo xls mas nao pega o conteudo do txt

abraço

No método ler, no while você está usando o l.readLine() como condicional para ele entrar no loop, esse método retorna uma string e pula para a próxima linha se eu não estiver enganado.
Logo se tiver apenas uma linha escrita no arquivo txt ele vai ler ela e vai entrar no loop, mas dentro do loop, na hora de ler novamente e mandar para a string ele retorna null, porque não há uma segunda linha.

tente trocar no condicional do while o l.readLine() por l.ready().

while(l.ready()){ .... }
só preste atenção, dessa maneira que está lendo, se você colocar mais de uma linha no arquivo a ser lido, somente a ultima linha do arquivo vai ficar na variavel!

e outra coisa, no metodo fatiar você está retornando a mesma string que manda para ele, imagino que deveria retornar um array com as palavras, no seu caso o b[].

Seu código tem diversos problemas:

  1. Só dar o nome de “xls” para um arquivo e gravar qualquer coisa lá dentro, de qualquer jeito, não torna ele um arquivo excel válido.
  2. Use um scanner para fazer a leitura do arquivo;
  3. Use um printWriter para escrever texto em outro arquivo. Se for escrever dados binários, use um FileInputStream.
  4. No fatiador, não é necessário chamar toString(), já que seus tipos de dados já são strings.
  5. Cuidado com nomes de variáveis como l. Isso parece o 1 e pode gerar um código confuso.

fernando e vini, obrigado pela ajuda
o conteudo do file txt ja é inserido no file xls
mas tudo na mesma celula
como coloco cada pedaço(usando o separador “;”) em uma celula?
abraço

Por que não abrir o arquivo txt no excel diretamente? O excel suporta o formato csv, e o txt provavelmente poderá ser aberto sem conversão nenhuma.

Para manipular arquivos excel, use alguma API como a JExcelApi.
http://jexcelapi.sourceforge.net/