在Java中,Everything is Object!所以在文件中,要不例外!
在Java中,可以用File類來表示一個文件!!!(注意這里的文件可以是所有文件,包括文件夾)
下面的代碼表示一個文件:
public class Demo {
public static void main(String[] args){
File f = new File("e:\\file");
if(f.isDirectory()){
System.out.println(f.getPath());
}
}
}
運行結(jié)果是:

代碼中isDirectory()方法是判斷文件是文件夾還是一個文件(這里可能有點迷糊),也可以這么理解,我所說的文件夾就是一個目錄,
getPath()方法是打印文件(這里指的是file文件夾)的路徑!!!
看看下面的代碼還有注釋:
/**
*
* File.speparator的作用是判斷在不同的系統(tǒng)中斜杠的方向
*
* 在windows中斜杠的方向是向右斜的\\
* 在Linux 中斜杠的方向是向左斜的//
*
*
* File中createNewFile方法:
* 當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時,不可分地創(chuàng)建一個新的空文件。
* 檢查文件是否存在,若不存在則創(chuàng)建該文件,這是單個操作,對于其他所有可能影響該文件的文件系統(tǒng)活動來說,該操作是不可分的。
*
* 注:此方法不應(yīng)該 用于文件鎖定,因為所得協(xié)議可能無法可靠地工作。應(yīng)該使用 FileLock 機制替代。
*
*
*/
import java.io.File;
public class Demo01 {
public static void main(String[] args) throws Exception{
File f;
f = new File("e:" + File.separator + "file" + File.separator + "io.txt");
System.out.println(f.createNewFile());
}
}
===================================
運行結(jié)果是:
大家注意,如果你的直接復(fù)制這些代碼的話,可能會出現(xiàn)以下異常
看看大家都明白了吧! 系統(tǒng)找不到指定的文件,就是在e盤下新建一個file文件夾就可以啦!!!
下面代碼詳細(xì)的介紹了File類中的createNewFile()方法:
/**
*
* File中createNewFile方法:
* 當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時,不可分地創(chuàng)建一個新的空文件。
* 檢查文件是否存在,若不存在則創(chuàng)建該文件,這是單個操作,對于其他所有可能影響該文件的文件系統(tǒng)活動來說,該操作是不可分的。
*
* 注:此方法不應(yīng)該 用于文件鎖定,因為所得協(xié)議可能無法可靠地工作。應(yīng)該使用 FileLock 機制替代。
* 返回:是布爾型
*
*/
import java.io.File;
public class Demo02 {
public static void main(String[] args) throws Exception{
File f = new File("f:\\demo.txt");
System.out.println(f.createNewFile());
}
}
運行結(jié)果如下:
下面介紹一下File類中delete()方法,代碼如下:
/**
*
* 要操作一個文件,必須要找到這個文件
* 在Java中,只有File類能表示一個文件,所有用File表示一個文件
* File的屬性就是文件的路徑,虛擬機會根據(jù)File類的參數(shù)找到指定的文件
* 找到問及那后可以用File類的方法進行操作!
*
* delete()方法可以刪除一個文件或者一個整個文件夾(整個目錄),返回結(jié)果是布爾類型!!
*
* */
import java.io.File;
public class Demo11 {
public static void main(String[] args) {
File f = new File("f:\\demo.txt");
f.delete();
if(boo){
System.out.println("成功刪除文件");
}
}
}
這個程序運行的結(jié)果:
下面的代碼是介紹查看一個文件的目錄,以及判斷這個文件是否是文件夾,代碼如下:
/**
*
* File的一個方法File.getPath()
* 是將此抽象路徑名轉(zhuǎn)換為一個路徑名字符串。
*
* File的exists方法
* 是測試此抽象路徑名表示的文件或目錄是否存在。
*
*
* File的getParent()方法
* 是返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null
*
* */
import java.io.File;
public class Demo21 {
public static void main(String[] args) {
File f = new File("f:" + File.separator + "demo.txt");
System.out.println(f.getPath());
System.out.println(f.getParent());
if(f.exists()){
f.delete();
}
else{
try{
System.out.println(f.createNewFile());
}catch(Exception e){}
}
}
}
運行結(jié)果:
再看一個判斷目錄的方法:
/**
*
* File的一個方法File.getPath()
* 是將此抽象路徑名轉(zhuǎn)換為一個路徑名字符串。
*
* File的isDirectory()的方法
* 是測試此抽象路徑名表示的文件是否是一個目錄。
* 當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在且 是一個目錄時,返回 true;否則返回 false。
*
*
* */
import java.io.File;
public class Demo51 {
public static void main(String[] args){
File f = new File("f:" + File.separator + "aa");
System.out.println(f.getPath());
System.out.println(f.isDirectory());
}
}
運行結(jié)果:
注意下一個代碼,可能對你很有幫助啊!!
/**
*
* File的list()方法可以:
* 返回一個字符串?dāng)?shù)組,
* 這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。
*
* */
import java.io.File;
public class Demo61 {
public static void main(String[] args) {
File f = new File("f:\\book");
//使用list列出
//列出的只是一個名稱
String[] str = f.list();
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}
這個程序的運行結(jié)果是你目錄下的文件:
下面的程序 你可能會很感興趣!因為你想玩HK,或者你想給別人整個惡作劇,你必須要掃描下他的電腦,以下方法就實現(xiàn)了怎樣去掃描一個電腦里的所有文件(我的代碼選擇的是掃描C盤下的所有文件,如果你想掃描其他盤,只要把文件改一下就OK啦)
import java.io.File;
public class Demo81 {
public static void main(String[] args) {
String str = "C:\\";
File f = new File(str);
fun(f);
}
//要不斷列出,因為給出的File類對象可能是一個目錄
public static void fun(File f){
//判斷給定的路徑是否是目錄,如果是目錄在列出
if(f.isDirectory()){
File[] file = f.listFiles();
//再依次循環(huán)進行判斷
try{
for(int i = 0;i < file.length;i++){
//繼續(xù)把內(nèi)容傳入到fun方法之中進行驗證
fun(file[i]);
}
}catch(Exception e){}
}
else{
System.out.println(f);
}
}
}
運行結(jié)果我就不貼出來了,因為C盤的文件太多啦!!!如果你想知道,自己把代碼帶下看看,你會很吃驚的!你會想原來掃描的原理這么簡單!!!
posted on 2010-11-07 23:05
tovep 閱讀(59655)
評論(2) 編輯 收藏