閱讀334 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO--File類




1、創建一個新文件


import java.io.File ;
import java.io.IOException ;
public class FileDemo01{
	public static void main(String args[]){
		File f = new File("d:\\test.txt") ;		// 實例化File類的對象
		try{
			f.createNewFile() ;		// 創建文件,根據給定的路徑創建
		}catch(IOException e){
			e.printStackTrace() ;	// 輸出異常信息
		}
	}
};
import java.io.File ;
import java.io.IOException ;
public class FileDemo02{
	public static void main(String args[]){
		System.out.println("pathSeparator:" + File.pathSeparator) ;	// 調用靜態常量
		System.out.println("separator:" + File.separator) ;	// 調用靜態常量
	}
};
如果要想讓java程序繼續保持可移植性,那麼在編寫路徑的時候就應該使用File類中的常量。
修改之前的程序:
import java.io.File ;
import java.io.IOException ;
public class FileDemo03{
	public static void main(String args[]){
		File f = new File("d:"+File.separator+"test.txt") ;		// 實例化File類的對象
		try{
			f.createNewFile() ;		// 創建文件,根據給定的路徑創建
		}catch(IOException e){
			e.printStackTrace() ;	// 輸出異常信息
		}
	}
};
注意:在操作文件的時候一定要注意分隔符,使用File.separator表示。

2、刪除一個指定的文件


import java.io.File ;
import java.io.IOException ;
public class FileDemo04{
	public static void main(String args[]){
		File f = new File("d:"+File.separator+"test.txt") ;		// 實例化File類的對象
		f.delete() ;	// 刪除文件
	}
};
import java.io.File ;
import java.io.IOException ;
public class FileDemo05{
	public static void main(String args[]){
		File f = new File("d:"+File.separator+"test.txt") ;		// 實例化File類的對象
		if(f.exists()){	// 如果文件存在則刪除
			f.delete() ;	// 刪除文件
		}
	}
};

3、綜合創建、刪除文件的操作

現在有以下一個要求:給定一個路徑,如果此文件存在,則刪除,如果文件不存在,則創建一個新的文件。
import java.io.File ;
import java.io.IOException ;
public class FileDemo06{
	public static void main(String args[]){
		File f = new File("d:"+File.separator+"test.txt") ;		// 實例化File類的對象
		if(f.exists()){	// 如果文件存在則刪除
			f.delete() ;	// 刪除文件
		}else{
			try{
				f.createNewFile() ;		// 創建文件,根據給定的路徑創建
			}catch(IOException e){
				e.printStackTrace() ;	// 輸出異常信息
			}
		}
	}
};
從程序的運行結果中可以發現,所有的操作並不會立刻執行,因為java是通過jvm與地層進行交互的,所以所有的操作需要經過jvm完成,那麼就有可能產生延遲。
對於文件的後綴,是可有可無的。

4、創建一個文件夾


import java.io.File ;
import java.io.IOException ;
public class FileDemo07{
	public static void main(String args[]){
		File f = new File("d:"+File.separator+"mldn") ;		// 實例化File類的對象
		f.mkdir() ;	// 創建文件夾
	}
};

5、列出指定目標的全部內容



操作一:使用list()列出全部內容

import java.io.File ;
import java.io.IOException ;
public class FileDemo08{
	public static void main(String args[]){
		File f = new File("d:"+File.separator) ;		// 實例化File類的對象
		String str[] = f.list() ;	// 列出給定目錄中的內容
		for(int i=0;i<str.length;i++){
			System.out.println(str[i]) ;
		}
	}
};
以上隻是列出了全部的名字,包括文件夾的名字、文件的名字。

操作二:使用listFiles()列出

import java.io.File ;
import java.io.IOException ;
public class FileDemo09{
	public static void main(String args[]){
		File f = new File("d:"+File.separator) ;		// 實例化File類的對象
		File files[] = f.listFiles() ;	// 列出全部內容
		for(int i=0;i<files.length;i++){
			System.out.println(files[i]) ;
		}
	}
};
列出的是一個完整的路徑,這樣對於程序本身來說是很容易進行其他操作的。

6、判斷一個給定的路徑是否是目錄


import java.io.File ;
import java.io.IOException ;
public class FileDemo10{
	public static void main(String args[]){
		File f = new File("d:"+File.separator) ;		// 實例化File類的對象
		if(f.isDirectory()){	// 判斷是否是目錄
			System.out.println(f.getPath() + "路徑是目錄。") ;
		}else{
			System.out.println(f.getPath() + "路徑不是目錄。") ;
		}
	}
};

7、實例:列出指定目錄的全部內容

如果給定了一個目錄,則要求將此目錄中的全部文件都列出來,但是列的時候會在存在子文件夾。

應該采用遞歸的調用形式。
import java.io.File ;
import java.io.IOException ;
public class FileDemo11{
	public static void main(String args[]){
		File my = new File("d:" + File.separator) ;	// 操作路徑
		print(my) ;
	}
	public static void print(File file){	// 遞歸調用
		if(file!=null){	// 判斷對象是否為空
			if(file.isDirectory()){	// 如果是目錄
				File f[] = file.listFiles() ;	// 列出全部的文件
				if(f!=null){	// 判斷此目錄能否列出
					for(int i=0;i<f.length;i++){
						print(f[i]) ;	// 因為給的路徑有可能是目錄,所以,繼續判斷
					}
				}
			}else{
				System.out.println(file) ;	// 輸出路徑
			}
		}
	}
};




























最後更新:2017-04-03 14:53:52

  上一篇:go WINDOWS中cmd的切換目錄cd命令失效
  下一篇:go WebService——wsimport命令建立webService本地客戶端