Ler arquivo separdo por coluna fix

Boa tarde galera, aqui estou com um P problema nos dedos e na mente, tenho um arquivo txt separado por coluna fixa e pensei que fosse por tab. Para ler este por tab estou fazendo assim:

BufferedReader reader = new BufferedReader(new FileReader(“c:/destDelimitador.txt”));
String Linha;
String dados[];
List lmb = new ArrayList();
ImportarBean mb;
for (int i = 0; ; i++){
Linha = reader.readLine();
if (Linha == null) break;
dados = Linha.split("\t");
mb = new ImportarBean();
mb.setData(dados[0]);
mb.setHora(dados[1]);
mb.setT(dados[2]);
mb.setRamal(dados[3]);
mb.setTronco(dados[4]);
mb.setNDiscado(dados[5]);
mb.setRing(dados[6]);
mb.setDuracao(dados[7]);
mb.setAcctCode(dados[8]);
mb.setCc(dados[9]);

            //Adiciona 
            lmb.add(mb);

e por coluna fixa alguém poderia me ajudar.

Esta é estrutura do arquivo que estou lendo:

04/11/08 12:13PM 1 E1245 T10114 27762688 00:00’45

04/11/08 12:13PM 1 E1148 T10107 22908401 00:00’19

04/11/08 12:13PM 1 E1102 T10102 25905483 00:00’57

04/11/08 12:13PM 1 E1077 T20903 0251633353298 00:00’23

Boa galera Obrigado desde já.

Shelter

Use Linha.substring (coluna inicial, 1 + colunafinal), em vez de split. É um saco mas funciona direitinho.

Não sei como usar, vc teria alguma codigo para me mostrar

Ora, você nunca viu um código com “substring”? Aqui vai um exemplo.

String s = "01234567";
String t = s.substring (2, 5); // ele vai obter a string "234"

Como eu falei, o primeiro parâmetro é a coluna inicial (a primeira coluna é 0), e o segundo parâmetro é a coluna final + 1.

Amigo estou muito grato pela ajuda
Aqui estou fazendo desta forma:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
*

  • @author valmir
    */
    public class Main {

    /** Creates a new instance of Main */
    public Main() {
    importa();
    }

    public void importa(){
    try {
    BufferedReader reader = new BufferedReader(new FileReader(“c:/pabx2.txt”));
    String Linha = reader.readLine();
    String dados;
    List lmb = new ArrayList();
    ImportarBean mb;
    for (int i = 0; ; i++){
    Linha = reader.readLine();
    if (Linha == null) break;
    dados = Linha;
    mb = new ImportarBean();
    mb.setData(dados(0,7));
    mb.setHora(dados(8,11));
    mb.setT(dados(12,12));
    mb.setRamal(dados(13,17));
    mb.setTronco(dados(18,23));
    mb.setNDiscado(dados(24,37));
    mb.setRing(dados(38,41));
    mb.setDuracao(dados(42,47));
    mb.setCc(dados(48,49));
    // mb.setCc(dados[9]);

             //Adiciona 
             lmb.add(mb);
           
             
         }
    

    // Gravar no Banco
    Class.forName(“com.mysql.jdbc.Driver”);
    Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,“root”,“1272”);
    String importar = “INSERT INTO IMPORTARTXT VALUES (?,?,?,?,?,?,?,?,?,?)”;
    PreparedStatement ps = con.prepareStatement(importar);

         for (int i = 0; i < lmb.size(); i++ ){
         ps.setString(1, lmb.get(i).getData());
         ps.setString(2, lmb.get(i).getHora());
         ps.setString(3, lmb.get(i).getT());
         ps.setString(4, lmb.get(i).getRamal());
         ps.setString(5, lmb.get(i).getTronco());
         ps.setString(6, lmb.get(i).getNDiscado());
         ps.setString(7, lmb.get(i).getRing());
         ps.setString(8, lmb.get(i).getDuracao());
         ps.setString(9, lmb.get(i).getAcctCode());
         ps.setString(10, lmb.get(i).getCc());
         ps.executeUpdate();
                                  
           
         }
          
         con.close();
     } catch (NumberFormatException ex) {
         ex.printStackTrace();
     } catch (FileNotFoundException ex) {
         ex.printStackTrace();
     } catch (SQLException ex) {
         ex.printStackTrace();
     } catch (ClassNotFoundException ex) {
         ex.printStackTrace();
     } catch (IOException ex) {
         ex.printStackTrace();
     }
    

    }

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      new Main();
      }

    private String dados(int i, int i0) {
    return null;
    }
    }

oq esta acontecendo:
Esta inserindo todos campos como NULL.

Vc pode me ajudar

Obrigado.