Tôi có một phương pháp mà có được văn bản từ một JTextArea, tạo một tập tin và viết văn bản trên nó như mã bên dưới:Thêm phần mở rộng .txt trong JFileChooser
public void createTxt() {
TxtFilter txt = new TxtFilter();
JFileChooser fSave = new JFileChooser();
fSave.setFileFilter(txt);
int result = fSave.showSaveDialog(this);
if(result == JFileChooser.APPROVE_OPTION) {
File sFile = fSave.getSelectedFile();
FileFilter selectedFilter = fSave.getFileFilter();
String file_name = sFile.getName();
String file_path = sFile.getParent();
try{
if(!sFile.exists()) {
sFile.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(sFile));
out.write(jTextArea1.getText());
out.close();
JOptionPane.showMessageDialog(null, "Warning file • " + file_name + " • created succesfully in \n" + file_path);
} else {
String message = "File • " + file_name + " • already exist in \n" + file_path + ":\n" + "Do you want to overwrite?";
String title = "Warning";
int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if(reply == JOptionPane.YES_OPTION){
sFile.delete();
sFile.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(sFile));
out.write(jTextArea1.getText());
out.close();
JOptionPane.showMessageDialog(null, "File • " + file_name + " • overwritten succesfully in \n" + file_path);
}
}
}
catch(IOException e) {
System.out.println("Error");
}
}
}
và một bộ lọc tập tin txt
public class TxtFilter extends FileFilter{
@Override
public boolean accept(File f){
return f.getName().toLowerCase().endsWith(".txt")||f.isDirectory();
}
@Override
public String getDescription(){
return "Text files (*.txt)";
}
}
Bộ lọc tệp cho txt hoạt động tốt nhưng những gì tôi muốn là thêm phần mở rộng ".txt" khi tôi nhập tên tệp.
Tôi phải sửa đổi mã của mình bằng cách nào?
Nó không hoạt động..không có phần mở rộng thêm –
Rất lạ! Trên hệ thống của tôi tất cả mọi thứ hoạt động .. Tôi đã chỉnh sửa câu trả lời. –
Cảm ơn bạn rất nhiều vì những thông tin hữu ích của bạn! Bạn nói đúng Tôi đã viết hai lần tập tin, không có lý do cho việc này. Bây giờ các tệp được lưu chính xác với hậu tố ".txt –