我想在我的表格中保存联系人,但是文件选择器总是将其设置为所有文件。 有没有办法将其设置为仅接受 .txt 并使其成为默认选项或唯一选项。
savecontact.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser filesave = new JFileChooser();
int returnVal = filesave.showSaveDialog(Main.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try {
File file = filesave.getSelectedFile();
PrintWriter os = new PrintWriter(file);
os.println("");
for (int col = 0; col < table.getColumnCount(); col++) {
os.print(table.getColumnName(col) + "\t");
}
os.println("");
os.println("");
for (int row = 0; row < table.getRowCount(); row++) {
for (int col = 0; col < table.getColumnCount(); col++) {
os.print(table.getColumnName(col));
os.print(": ");
os.println(table.getValueAt(row, col));
}
os.println("");
}
os.close();
System.out.println("Done!");
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
File file = filesave.getSelectedFile();
后,您可以检查文件名是否具有扩展名 "txt"。如果没有,则创建一个新的包含扩展名的File
对象,然后继续使用new PrintWriter(file2);
(创建新的File
对象实际上并不会创建文件)。 - Enwired\t
作为行中值的分隔符并使用换行符作为行之间的分隔符保存表格,它应该真正被称为.tsv
(制表符分隔变量)! - Andrew Thompson.txt
。我只是简单地说明了一种方法。他可能有某些原因喜欢.txt
而不是.tsv
,这与我无关。例如,Windows机器通常不识别扩展名.tsv
,但它们确实识别.csv
。 - Enwired