在Java的GUI编程中,经常用到文件的读取(打开)和保存操作。对操作的界面编写,我们一般是对菜单项设置动作监听,当激活时就打开一个单独的FileDialog类模态子窗口,来进行具体操作。
编程时的思路是:
对相应菜单项设置动作监听,当激活动作时,会显示相应文件操作子窗口,进行操作,参考代码:
FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD); //建立打开时的窗口对象
FileDialog saveFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE); //建立保存时的窗口对象
编程时的思路是:
对相应菜单项设置动作监听,当激活动作时,会显示相应文件操作子窗口,进行操作,参考代码:
FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD); //建立打开时的窗口对象
FileDialog saveFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE); //建立保存时的窗口对象
当eventSource==openItem时,openFileDialog.setvisible(true); //打开文件操作
fileName=openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName!=null){
File file=new File(fileName);
FileReader readIn=new FileReader(file);
int size=(int)file.length();
int readedSize=0;
char []content=new char[size];
while(readIn.ready())
readedSize += readIn.read(content,readedSize,size-readedSize);
readIn.close();
fileName=openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName!=null){
File file=new File(fileName);
FileReader readIn=new FileReader(file);
int size=(int)file.length();
int readedSize=0;
char []content=new char[size];
while(readIn.ready())
readedSize += readIn.read(content,readedSize,size-readedSize);
readIn.close();
*此时对读入到字符数组缓冲区content的文件内容可作进一步操作
}
当eventSource==saveAsItem时,saveFileDialog.setvisible(true); //保存文件操作
fileName=saveFileDialog.getDirectory()+saveFileDialog.getFile();
if(fileName!=null){
File file=new File(fileName);
FileWriter writeOut=new FileWriter(file);
writeOut.write(你需保存的文件内容来源);
writeOut.close();
}
可以看出,两种操作都需要先对字符串形式的文件名用File类包装,然后用FileReader或FileWriter文件流包装,即可调用包装后的类方法进行读写操作了。另外还需对文件读写进行异常捕获和处理,此处忽略。
}
当eventSource==saveAsItem时,saveFileDialog.setvisible(true); //保存文件操作
fileName=saveFileDialog.getDirectory()+saveFileDialog.getFile();
if(fileName!=null){
File file=new File(fileName);
FileWriter writeOut=new FileWriter(file);
writeOut.write(你需保存的文件内容来源);
writeOut.close();
}
可以看出,两种操作都需要先对字符串形式的文件名用File类包装,然后用FileReader或FileWriter文件流包装,即可调用包装后的类方法进行读写操作了。另外还需对文件读写进行异常捕获和处理,此处忽略。
版权声明:本文为Shiqingning原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。