java IO流(File類)

/*
 * 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;
}
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章