Что ж, вместо того, чтобы пытаться указать два файла, а просто запросить один и затем применить к нему часть (расширение и) мета-имя?
Тогда вы могли бы сделать что-то вроде ...
int returnVal = exportChooser.showDialog(null, "Export");
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = exportChooser.getSelectedFile();
File path = file.getParentFile();
String name = file.getName();
if (!name.toUpperCase().endsWith(".txt")) {
name += ".txt";
}
String metaName = name.substring(0, name.lastIndexOf("."));
metaName += "_metadata.txt";
File outputFile = new File(path, name);
File metaFile = new File(path, metaName);
}
Примечание: вам может потребоваться принять собственное решение о том, как обрабатывать возможные существующие расширения, я просто поставил требование закончить .txt
Тогда вы можете просто написать что-то вроде ...
try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile))) {
// Write stuff...
try (BufferedWriter metaBW = new BufferedWriter(new FileWriter(metaFile))) {
// Write meta data
}
} catch (IOException ex) {
ex.printStackTrace();
}
ЕСЛИ вы ДОЛЖНЫ быть в состоянии выбрать файл метаданных отдельно (что для меня не имеет смысла, потому что тогда как вы связываете два файла вместе?), Вам нужно будет проверить количество выбранных файлов, возвращаемых JFileChooser
и убедитесь, что у вас есть ожидаемое / требуемое количество файлов