es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se pueden leer varios archivos de texto desde un conjunto de datos?

Actualmente tengo código para leer un archivo específico en Java, pero quiero leer los nombres de archivo desde una matriz en Java.

Por ejemplo, tengo una matriz de nombres de archivo, por ejemplo,

String[] files = {"file1.txt", "file2.txt", "File3.txt"};

Quiero poder abrir el archivo en una matriz cuando un usuario hace clic en un botón y cuando vuelven a hacer clic en el botón, se abre el siguiente archivo, etc.

¿Podría por favor mostrarme amablemente cómo hacer esto?

Código simplificado:

public void loadFile(String fileName) {
    InputStreamReader myReader = new InputStreamReader(getClass().getResourceAsStream(files[0]));
    BufferedReader buffer = new BufferedReader(myReader);

}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para leer nombres de archivo desde un array, puedes modificar el método loadFile pasando un parámetro de índice que especifique qué archivo del array abrir. A continuación se muestra un fragmento de código actualizado:

    int currentIndex = 0; // rastrea el índice actual del archivo
    
    public void loadFile(int index) {
      try {
        String fileName = files[index];
        InputStreamReader myReader = new InputStreamReader(getClass().getResourceAsStream(fileName));
        BufferedReader buffer = new BufferedReader(myReader);
        // hacer algo con el archivo
        currentIndex = index; // actualizar el índice actual
      } catch (Exception e) {
        // manejar la excepción de archivo no encontrado u otras excepciones
      }
    }
    

    Luego puedes llamar a este método con el índice actual cuando se hace clic en el botón e incrementar el índice para el próximo archivo:

    int currentIndex = 0;
    
    private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
      loadFile(currentIndex);
      currentIndex = (currentIndex + 1) % files.length; // obtener el siguiente índice
    }
    

    Este código utiliza el operador módulo para recorrer el array de archivos, por lo que el índice siempre estará dentro de los límites del array. Ten en cuenta que es posible que debas manejar excepciones como la no existencia del archivo o errores de formato de archivo según tu caso de uso.

Comments are closed.