Comment puis-je utiliser JFileChooser pour ouvrir deux fichiers texte et après avoir sélectionné ces fichiers, je veux les comparer, les afficher à l'écran, etc. Est-ce possible?
Vous pouvez avoir votre JFileChooser
sélectionner plusieurs fichiers et renvoyer un tableau d'objets File au lieu d'un
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
La méthode showOpenDialog(frame)
ne revient que lorsque vous cliquez sur le bouton ok
MODIFIER
Faites donc ceci:
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]));
}
Et changez votre readFileAsList
en:
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();
}
}
Vous pouvez utiliser:
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();
Vous pouvez ensuite utiliser les descripteurs de fichier renvoyés pour effectuer la comparaison.
Dans mon cas, je l'ai résolu en déclarant le cadre comme une variable locale initialisée définie sur null:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
Component frame = null;
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();