Carregar dados de um arquivo em um vetor

A ae pessoal, to com o seguinte problema, quero pegar os dados de um arquivo e colocar em um vetor.
mais tá dando o seguinte erro…
segue o código em anexo. Sou iniciante em java.

run:
java.lang.ArrayIndexOutOfBoundsException: 2000
at Arquivo.main(Arquivo.java:49)


import java.io.*;

public class Arquivo {

    public static void main(String[] args) {
        try {
            // Gravando no arquivo
            File arquivo;
            String texto;
            arquivo = new File("arquivo.txt");

            int ip = 1921681000;

            //criar um novo arquivo
            //FileOutputStream fos = new FileOutputStream(arquivo);

            boolean existe = arquivo.exists();

            if (existe) {
                //insere no final do arquivo
                FileOutputStream fos = new FileOutputStream(arquivo, true);

                for (int i = 0; i < 255; i++) {
                    texto = String.valueOf("INSERINDO" + "\n");
                    fos.write(texto.getBytes());
                    ip++;
                }
                fos.close();
            } else {
                FileOutputStream fos = new FileOutputStream(arquivo);
                for (int i = 0; i < 255; i++) {
                    texto = String.valueOf(ip + "\n");
                    fos.write(texto.getBytes());
                    ip++;
                }
            }



            // Lendo do arquivo
            arquivo = new File("arquivo.txt");
            FileInputStream fis = new FileInputStream(arquivo);

            int ln;
            String ipes[] = new String[2000];
            int cont=0;
            while ((ln = fis.read()) != -1) {
                ipes[cont] = String.valueOf((char) ln);
                cont++;
            }

            System.out.println("primeiro" + ipes[0] + "segundo" + ipes[1]);
            
            fis.close();
        } catch (Exception ee) {
            ee.printStackTrace();
        }
    }
}

[quote]
java.lang.ArrayIndexOutOfBoundsException: 2000 [/quote]

Você definiu um array de 2000 posições, porém creio que seu arquivo tenha mais que isso. Por isso do problema.
Dá uma estudada na exception acima que você irá entender melhor o seu significado

Pq vc num le o arquivo linha por linha?

public Vector file2vector(String file, boolean trim) {
        Vector ret = new Vector();
        LineNumberReader ln1 = null;
        String s = "";
        try {
            ln1 = new LineNumberReader(new FileReader(file));

            while (true) {
                try {
                    s = ln1.readLine();
                } catch (IOException ex) {
                    System.err.println("Erro leitura...\n" + ex);
                }
                if (!(s == null)) {
                    if (trim) {
                        s = s.trim();
                    }
                    ret.add(s);
                } else {
                    break;
                }
            }
            ln1.close();
        } catch (Exception ex) {
            System.err.println("Erro");
             ex.printStackTrace();
        }
        return ret;
    }

[quote=Hebertbc]Pq vc num le o arquivo linha por linha?

[code]
public Vector file2vector(String file, boolean trim) {
Vector ret = new Vector();
LineNumberReader ln1 = null;
String s = “”;
try {
ln1 = new LineNumberReader(new FileReader(file));

        while (true) {
            try {
                s = ln1.readLine();
            } catch (IOException ex) {
                System.err.println("Erro leitura...\n" + ex);
            }
            if (!(s == null)) {
                if (trim) {
                    s = s.trim();
                }
                ret.add(s);
            } else {
                break;
            }
        }
        ln1.close();
    } catch (Exception ex) {
        System.err.println("Erro");
         ex.printStackTrace();
    }
    return ret;
}

[/code][/quote]

Mais como eu implementaria isso no meu código?