Puenden decirme com solucionar estos dos errores en archivos en java. se le agardeceria muxo.

Ricardo Agundis Hernandez
20 de Enero del 2011
aqui es el 1ro parts[i]=cambiarformato1(parts[i]);
el segundo es: String[] hora=cadena.substring(cadena.length()-15,cadena.length()-1).split(":");

los errores que me salen son estos :

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(String.java:1931)
at geral.Main.cambiarformato1(Main.java:81)
at geral.Main.main(Main.java:59)
Java Result: 1

ojala me muestres si puedes claro donde cometo el error :) riqhardo.


package geral;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

/**
* @author Ricardo A
**/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {

//*Capturar el nombre del archivo.
BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in));
String nombre;

//**************CODIGO PARA ESCRIBIR EN UN ARCHIVO**************//
FileWriter fichero = null;
PrintWriter pw = null;

//**************CODIGO PARA LEER EN UN ARCHIVO**************//
File archivo = null;
FileReader fr = null;
BufferedReader br = null;

//******************archivo a donde se escribira***********************//
fichero = new FileWriter("C:Documents and SettingsRicardo AEscritoriogeralprueba.txt");
pw = new PrintWriter(fichero);

archivo = new File ("C:Documents and SettingsRicardo AEscritoriogeraltblclsBaplie.txt");
fr = new FileReader (archivo);
br = new BufferedReader(fr);

// Lectura del fichero
String linea;
String[] parts=new String[280];
String[] hora=new String[8];
String corregido="";

while((linea=br.readLine())!=null)
{
String nvaHr;
parts = linea.split("##");

for(int i=0;i

damián matteucci
25 de Enero del 2011
Hola, las excepciones java.lang.StringIndexOutOfBoundsException ocurren siempre que se trata de acceder a una posición de un arreglo (arraylist, list, etc) que no esta definido. Ej: Si tenemos un arraylist con 7 elementos y tratamos de acceder al elemento nro 8 esto nos arroja la exception "java.lang.StringIndexOutOfBoundsException".
Como solucionamos estos problemas:
Chequear que el arreglo tenga elementos por ej: si arreglo.length()>7 ==> podemos acceder arreglo.get(6)

Espero haber ayudo con tu problema.

PD: Fijate que a continuación de la excepción te dice en que linea se genero dicha excepcion.