* File類:用來將文件或者文件夾封裝成對象,文件和目錄路徑名的抽象表示形式。
* 方便對文件與文件夾屬性操作。
* File類可以作爲參數傳遞給流的構造函數。
* separator關鍵字:代表任何平臺下的目錄分隔符。
* File類的常用方法:
* 1.創建:
* 在指定爲位置創建文件,如果該文件已經存在,返回false,和輸入流不同。
* 輸出流對象一建立文件,文件存在會覆蓋。
* boolean createNewFile():根據File對象創建新的文件。
* boolean kmdir():創建文件夾,只能創建一級文件夾
* boolean kmdirs():創建多級文件夾。
* 2.刪除:
* boolean delete();如果文件不存在則刪除失敗,返回false
* boolean deleteOnExit();//退出時刪除指定文件
* 3.判斷:
* boolean canExecute(): //判斷此文件是否可以執行。
exists()://判斷文件是否存在。
isDirectory():判斷是否是目錄。
isFile():判斷是否是文件。
isHidden():判斷是否是隱藏文件。
* 4.獲取:
* 返回由此抽象路徑名錶示的文件或目錄的名稱。
* String getName()
* 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null。
String getParent()
將此抽象路徑名轉換爲一個路徑名字符串。
String getPath()
返回此抽象路徑名的絕對路徑名形式。
File getAbsoluteFile()
返回此抽象路徑名錶示的文件最後一次被修改的時間。
long lastModified()
返回由此抽象路徑名錶示的文件的長度。
long length()
*/
import java.io.*;
public class FileDemo {
public static void main(String args[]) throws IOException
{
//consMethod();
//method();
//method1();
//method2();
method3();
}
public static void method3() throws IOException
{
File f=new File("c:\\file.txt");
File f1=new File("c:\\file222.txt");
sop(f.createNewFile());
//獲取相對路徑file.txt
sop(f.getPath());
//獲取絕對路徑E:\java實例工程\IO流2(File類)\file.txt
sop(f.getAbsoluteFile());
//獲取相對路徑,返回null,絕對路徑返回上一層目錄。
sop(f.getParent());
sop(f.lastModified());
sop(f.length());
//修改文件名
sop(f.renameTo(f1));
}
public static void method2() throws IOException
{
/*
* 重點:判斷文件對象師是否是文件揮着目錄時
* 必須判斷文件對象封裝的內容是否存在。
* 通過exists判斷。
*/
File f=new File("c:\\file1.txt");
//File dir=new File("c\\file2txt");
//dir.mkdir();
//f.createNewFile();
f.mkdir();
sop(f.isDirectory());
sop(f.isFile());
sop(f.isAbsolute());
}
public static void method1() throws IOException
{
File f=new File("c:\\abc");
File dir=new File("c:\\farker\\abv\\kkk");
dir.mkdirs();
f.createNewFile();
sop(f.exists());
//sop(f.canExecute());
}
//將文件對象創建成新文件
public static void method() throws IOException
{
File dir=new File("c:\\abc");
File f=new File("c:\\abc\\file.txt");
sop(dir.mkdir());
sop(f.createNewFile());
//dir.delete();
f.delete();
}
//創建File對象以及separator關鍵字的使用
public static void consMethod()
{
//創建File對象,將a.txt封裝成對象。
File f1=new File("c:\\a.txt");
//
File f2=new File("c:\\ab","b.txt");
//
File d=new File("c:\\abcd");
File f3=new File(d,"c.txt");
sop("f1:"+f1);
sop("f2:"+f2);
sop("f3:"+f3);
//separator代表任意平臺下的分隔符
File f4= new File("c:"+File.separator+"abv"+File.separator+"qwe.txt");
sop("f4:"+f4);
}
//輸出函數
public static <T> void sop(T t)
{
System.out.println(t);
}
}
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo2 {
public static void main(String[] args) {
//listRootsDemo();
//list();
//listdemo();
//listdemo1();
File dir =new File("c:\\新建文件夾");
listDemo2(dir);
}
//列出指定目錄下所有的內容。
public static void listDemo2(File dir)
{
sop(dir);
File d[]=dir.listFiles();
for(File f:d)
{
if(f.isDirectory())
{
listDemo2(f);
}
else sop(f);
}
}
//獲取File對象,並且可以獲取對象的屬性。
public static void listdemo1()
{
File f=new File("c:\\");
File[] arr=f.listFiles();
for(File f1:arr)
{
sop(f1.getName()+"::"+f1.length());
}
}
//列出目錄下所有的文件以及文件夾,包含隱藏文件,File對象必須是個目錄,而且目錄必須存在。
public static void listdemo()
{
File dir=new File("c:\\");
String[] arr=dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
for(String s:arr)
{
sop(s);
}
}
public static void list()
{
File f=new File("c:\\");
String[] name=f.list();
for(String s:name)
sop(s);
}
//列出系統裏所有的盤符。
public static void listRootsDemo()
{
File[] files =File.listRoots();
for(File f:files)
{
sop(f);
}
}
public static <T> void sop(T t)
{
System.out.println(t);
}
}
/*
* 刪除一個帶內容的目錄。
* 刪除原理:在window中,刪除目錄從裏面往外刪除,需要用到遞歸。
*
*/
import java.io.*;
public class FileDemo3 {
public static void main(String[] args) {
File dir =new File("c:\\新建文件夾");
removeDirDemo(dir);
}
public static void removeDirDemo(File dir)
{
File fi[]=dir.listFiles();
for(File d:fi )
{
if(!d.isHidden()&&d.isDirectory())
{
removeDirDemo(d);
}
else sop(d+":::"+d.delete());
}
sop(dir+":::"+dir.delete());
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
import java.io.*;
import java.util.*;
public class FileDemo4 {
public static void main(String[] args) throws IOException {
File dir=new File("E:\\java實例工程");
List<File> list=new ArrayList<File>();
fileToList(dir,list);
writeToFile( list);
System.out.println(list.size());
}
public static void fileToList(File dir,List<File> list)
{
File file[]=dir.listFiles();
for(File f:file)
{
if(f.isDirectory())
{
fileToList(f,list);
}
else
{
if(f.getName().endsWith(".java"))
list.add(f);
}
}
}
public static void writeToFile(List<File> list) throws IOException
{
BufferedWriter fw=null;
try{
fw=new BufferedWriter(new FileWriter("c:\\demo.txt"));
for(File f:list)
{
//將list裏的File對象寫入fw中
fw.append(f.getAbsolutePath());
//寫入一個行分隔符
fw.newLine();
//刷新該流的緩衝
fw.flush();
}
}
catch (IOException e)
{
throw e;
}
finally{
try{
if(fw!=null)
fw.close();
}
catch(Exception e){
throw e;
}
}
}
}