这里写目录标题
Awt用FileDialog , Swing用JFileChooser
FileDialog
FileDialog是掉用操作系统的现成
setMode( FileDialog.LOAD | FileDialog.SAVE )
设置读或写setMultipleMode( true | false )
设置单或多文件setVisible(true)
弹出文件选择框,阻塞进程,等待选择getDirectory()
获取文件所在文件夹的路径getFile()
获取文件名getFiles()
获取多个文件名的数组
设置 [ 读模式 或 写模式 ]
读还是写模式可以在 构造方法的第三个参数 或 setMode() 方法中设置
构造方法源码
public FileDialog(Frame parent, String title, int mode) {
super(parent, title, true);
this.setMode(mode);
setLayout(null);
}
默认是读模式
* @since 1.5
*/
public FileDialog(Dialog parent) {
this(parent, "", LOAD);
}
设置为读模式
FileDialog fileDialog = new FileDialog(frame); //默认是读模式
或
FileDialog fileDialog = new FileDialog(frame, "请选择文件", FileDialog.LOAD);
或
FileDialog fileDialog = new FileDialog(frame);
fileDialog.setMode(FileDialog.LOAD);
设置为写模式
FileDialog fileDialog = new FileDialog(frame, "请选择文件", FileDialog.SAVE);
或
FileDialog fileDialog = new FileDialog(frame);
fileDialog.setMode(FileDialog.SAVE);
设置 一次只可选单个文件 或 一次可选多个文件
用 setMultipleMode(true/false)
来设置是否多文件复合模式
源码默认是单文件模式
/**
* Represents whether the file dialog allows the multiple file selection.
*
* @serial
* @see #setMultipleMode
* @see #isMultipleMode
* @since 1.7
*/
private boolean multipleMode = false;
设为多文件模式
setMultipleMode(true); //设为多文件模式
设为单文件模式
setMultipleMode(false); //设为单文件模式
弹出选择窗口,程序阻塞,等待选择,用 setVisible(true);
弹出选择窗口,程序阻塞,等待选择,用 setVisible(true)
;
setVisible(true); //线程池会阻塞,等待选取文件, 然后可调用 getDirectory(); getFile(); getFiles();
获取文件路径
默认是读取单文件
FileDialog fileDialog = new FileDialog(frame);
或者明确指定读
FileDialog fileDialog = new FileDialog(frame, "选择单文件", FileDialog.LOAD);
FileDialog fileDialog = new FileDialog(frame);
fileDialog.setMode(FileDialog.LOAD);
单文件
默认就是读单文件
fileDialog.setVisible(true);
String directoryStr = fileDialog.getDirectory() , fileStr = fileDialog.getFile();
if(directoryStr!=null && fileStr!=null) {
String pathStr = directoryStr+fileStr;
System.out.println(pathStr);
}
多文件
fileDialog.setMultipleMode(true); //先设为复合模式
fileDialog.setVisible(true); //再开读
File fileAr[] = fileDialog.getFiles(); //返回File数组
保存文件
FileDialog fileDialog = new FileDialog(frame, "保存文件", FileDialog.SAVE);
fileDialog.setVisible(true);
String directoryStr = fileDialog.getDirectory() , fileStr = fileDialog.getFile();
if(directoryStr!=null && fileStr!=null) {
String pathStr = directoryStr+fileStr;
System.out.println(pathStr);
}