Открытие файла без расширения - Java
Я делаю проект для моего колледжа, мой файл сохранения / открытия работает нормально, но мне нужно, чтобы он сохранился как мое желаемое расширение, и так же открылся. Например: когда я нажимаю "Сохранить файл", я записываю имя testFile в качестве имени файла и нажимаю "Сохранить", теперь мой код должен сохранить как желаемое расширение. То же самое работает для открытия файла, если я пишу testFile и нажимаю кнопку open, он должен найти testFile.txt. Кто-нибудь может мне помочь, как мне это сделать? следуйте моему коду ниже.
private class SalvaDesenho implements ActionListener {
private Component parent;
SalvaDesenho(Component parent) {
this.parent = parent;
}
public void actionPerformed(ActionEvent e) {
try {
final JFileChooser fc = new JFileChooser();
fc.setFileFilter(new FileNameExtensionFilter("Arquivo de Texto (.txt)", "txt"));
fc.setAcceptAllFileFilterUsed(false);
int returnVal = fc.showSaveDialog(parent);
if (returnVal != JFileChooser.APPROVE_OPTION)
return;
int op = 0;
if (fc.getSelectedFile().exists()) {
Object[] options = { "Sim", "Não" };
op = JOptionPane.showOptionDialog(null, "O arquivo já existe deseja substituilo?", "Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[1]);
}
if (op != 0) return;
System.out.println("Salvando: " + fc.getSelectedFile().getPath());
FileOutputStream fout = new FileOutputStream(fc.getSelectedFile());
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(figuras);
isSaved = true;
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
private class AbreDesenho implements ActionListener {
private Component parent;
AbreDesenho(Component parent) {
this.parent = parent;
}
public void actionPerformed(ActionEvent e) {
try {
final JFileChooser fc = new JFileChooser();
FileNameExtensionFilter txtFilter = new FileNameExtensionFilter("Arquivo de texto (.txt)", "txt");
fc.setFileFilter(txtFilter);
int returnVal = fc.showOpenDialog(parent);
if (returnVal != JFileChooser.APPROVE_OPTION)
System.out.println("File error!");
System.out.println("Abrindo: " + fc.getSelectedFile().getPath());
FileInputStream fin = new FileInputStream(fc.getSelectedFile());
ObjectInputStream ois = new ObjectInputStream(fin);
figuras = (Vector<Figura>) ois.readObject();
} catch (Exception ex) {
ex.printStackTrace();
return;
}
pnlDesenho.getGraphics().clearRect(0 , 0, parent.getHeight(), parent.getWidth());
for (int i=0 ; i<figuras.size(); i++)
figuras.get(i).torneSeVisivel(pnlDesenho.getGraphics());
}
}
Благодарю.
1 ответ
Решение
Вам следует сделать это вручную:
- Получить
File
объект изJFileChooser
- Получите свой абсолютный путь как
String
, с помощьюgetAbsolutePath()
, - Проверьте, имеет ли это расширение или нет: Проверьте расширение файла в Java
- Если нет, добавьте ваше расширение к пути:
path = path+".txt";
- Создать новый
File
объект с пути:File file = new File(path)
- Открыть / сохранить файл (ваш код)