java 選擇載入或儲存本地檔案
阿新 • • 發佈:2018-12-07
在用到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()); } }