使用java的File類建立檔案
阿新 • • 發佈:2018-12-30
java.io.File類代表系統檔名(路徑和檔名)
(1)File類常見的構造方法:
//以pathname為路徑建立File物件,如果pathname是相對路徑則預設當前路徑在系統屬性user.dir中儲存 public File(String pathname) { if (pathname == null) { throw new NullPointerException(); } this.path = fs.normalize(pathname); this.prefixLength = fs.prefixLength(this.path); } //以parent為父路徑,child為子路徑建立File物件 public File(String parent, String child)
(2)File類常用方法(方法名很直觀)
1.通過File物件可以訪問檔案的屬性
public boolean canRead() public boolean canWrite() public boolean exists() public boolean isFile() public boolean isDirectory() public boolean isHidden() //返回的是從1970年1月1日零時零分零秒到現在經歷的毫秒數(為了效率高) public long lastModified() public long length() public String getName() public String getPath()
2.通過File物件建立空檔案或目錄(在該物件所指的檔案或目錄不存在的情況下)
public boolean createNewFile()
public boolean delete()
public boolean mkdir()
//建立在路徑中的一系列目錄
public boolean mkdirs()
(3)File方法的應用舉例
package classinstance; import java.io.File; import java.io.IOException; /** * 說明:檔案類使用演示(在mydir1/mydir2目錄下建立yuhua檔案) * * @author huayu * @date 2018/8/30 4:29 PM */ public class FileDemo { public static void main(String[] args) { String separator= File.separator; String filename="yuhua"; //separatory為了相容性(因為在window中檔案路徑是"/""\"兩種,而在linux中只能是"/") String directory="mydir1"+separator+"mydir2"; //還可以這麼x寫直接用"/",在windows跟linux都可以用 // String directory="mydir1/mydir2"; File file=new File(directory,filename); if(file.exists()){ System.out.println("檔名:"+file.getAbsolutePath()); System.out.println("檔案大小:"+file.length()); }else { //在.class檔案所在的最上層包的父路徑下 file.getParentFile().mkdirs(); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } }
(4)應用小實驗
package classinstance;
import java.io.File;
/**
* 說明:遞迴列出檔案目錄及其所有子目錄及檔案樹形展示出來
*
* @author huayu
* @date 2018/8/30 5:11 PM
*/
public class PrintFileDirectory {
public static void main(String[] args) {
File file=new File("/Users/huayu/Desktop/A");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String preStr="";
for (int i = 0; i <level; i++) {
//為了看的分層更清楚,建議多敲幾個空格
preStr+=" ";
}
//列出當前目錄的孩子們
File[] childs=file.listFiles();
for (int i = 0; i < childs.length; i++) {
System.out.println(preStr+childs[i].getName());
if(childs[i].isDirectory()){
tree(childs[i],level+1);
}
}
}
}
結果
A
d.txt
C
H
B
E
若有問題歡迎大家與我互動交流,可評論,可留言,以後每週我會堅持至少更新一篇部落格文章,喜歡的朋友可以加一下關注。