ruta - jfilechooser java seleccionar carpeta
JFileChooser para abrir mĂșltiples archivos txt (3)
En mi caso, lo resolví declarando el marco como una variable local inicializada establecida en nulo:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
Component frame = null;
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
¿Cómo puedo usar JFileChooser para abrir dos archivos de texto y después de seleccionar estos archivos, quiero compararlos, mostrarlos en la pantalla, etc.? ¿Es esto posible?
Puedes usar:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
// Show the dialog; wait until dialog is closed
chooser.showOpenDialog(frame);
// Retrieve the selected files.
File[] files = chooser.getSelectedFiles();
A continuación, puede utilizar los controladores de archivo devueltos para realizar la comparación.
Puede hacer que su JFileChooser
seleccione varios archivos y devuelva una matriz de objetos File en lugar de uno
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
El método showOpenDialog(frame)
solo regresa una vez que hace clic en el botón Aceptar
EDITAR
Así que haz esto:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
if(files.length >= 2) {
compare(readFileAsList(files[0]), readFileAsList(files[1]));
}
Y cambia tu readFileAsList
a:
private static List<String> readFileAsList(File file) throws IOException {
final List<String> ret = new ArrayList<String>();
final BufferedReader br = new BufferedReader(new FileReader(file));
try {
String strLine;
while ((strLine = br.readLine()) != null) {
ret.add(strLine);
}
return ret;
} finally {
br.close();
}
}