1. 程式人生 > >java 選擇載入或儲存本地檔案

java 選擇載入或儲存本地檔案

在用到java進行檔案的選擇和儲存時,我們可以利用java的JFileChooser。

首先是java選擇載入本地檔案

package com.file;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import com.file.WaveFileReader;
import com.tuxin.test;

public class fileselect {

	public void select() {
	//首先是建立JFileChooser 物件,裡面帶個引數,表示預設開啟的目錄,這裡是預設開啟當前檔案所在的目錄。
	JFileChooser file = new JFileChooser (".");
	//下面這句是去掉顯示所有檔案這個過濾器。
	file.setAcceptAllFileFilterUsed(false);
	//新增音訊檔案的過濾器
	file.addChoosableFileFilter(new ExcelFileFilter("wav"));
	int result = file.showOpenDialog(null);
	//JFileChooser.APPROVE_OPTION是個整型常量,代表0。就是說當返回0的值我們才執行相關操作,否則什麼也不做。
	if(result == JFileChooser.APPROVE_OPTION)
	{
	//獲得你選擇的檔案絕對路徑。並輸出。
		test ts=new test();
		File filee=file.getSelectedFile();
	   String path = file.getSelectedFile().getAbsolutePath();
	   //String filename=file.getSelectedFile().getName();
	   ts.drawWaveFile(filee);
	   System.out.println(path);
	}
	else
	{
	    System.out.println("你已取消並關閉了視窗!");
    }
   }
}

這時可以利用java程式碼來選擇檔案列表要顯示的檔案(如.doc  .xls  .txt)
package com.file;

import java.io.File;

import javax.swing.filechooser.FileFilter;

public class ExcelFileFilter extends FileFilter {

	String ext;
	//構造方法的引數是我們需要過濾的檔案型別。比如excel檔案就是 xls,exe檔案是exe.
	ExcelFileFilter(String ext) {
	   this.ext = ext;
	}
	 @Override
     public boolean accept(File arg0) {
         // TODO Auto-generated method stub
         if(arg0.getName().endsWith(".wav" )|| arg0.isDirectory())
             return true;
         return false;
     }

     @Override
     public String getDescription() {
         // TODO Auto-generated method stub
         return "波形檔案(.wav)";
     }

}


接下來實現檔案的儲存
JFileChooser chooser=new JFileChooser();
		FileNameExtensionFilter filter=new FileNameExtensionFilter("*.txt", "txt");
		FileNameExtensionFilter filter1=new FileNameExtensionFilter("*.doc", "doc");
		JFileChooser jFileChooser=new JFileChooser();
		jFileChooser.setFileFilter(filter);
		jFileChooser.setFileFilter(filter1);
		int result=jFileChooser.showSaveDialog(null);
		if (result==JFileChooser.APPROVE_OPTION)
		{
			File a=jFileChooser.getSelectedFile();
			System.out.println(a.getPath());
			if (!a.getName().endsWith(".txt")) 
			{
				a=new File(a.getPath()+".txt");
				System.out.println(a.getPath());
			}
		}