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

代碼中isDirectory()方法是判斷文件是文件夾還是一個(gè)文件(這里可能有點(diǎn)迷糊),也可以這么理解,我所說(shuō)的文件夾就是一個(gè)目錄,
getPath()方法是打印文件(這里指的是file文件夾)的路徑!!!
看看下面的代碼還有注釋:
/**
*
* File.speparator的作用是判斷在不同的系統(tǒng)中斜杠的方向
*
* 在windows中斜杠的方向是向右斜的\\
* 在Linux 中斜杠的方向是向左斜的//
*
*
* File中createNewFile方法:
* 當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時(shí),不可分地創(chuàng)建一個(gè)新的空文件。
* 檢查文件是否存在,若不存在則創(chuàng)建該文件,這是單個(gè)操作,對(duì)于其他所有可能影響該文件的文件系統(tǒng)活動(dòng)來(lái)說(shuō),該操作是不可分的。
*
* 注:此方法不應(yīng)該 用于文件鎖定,因?yàn)樗脜f(xié)議可能無(wú)法可靠地工作。應(yīng)該使用 FileLock 機(jī)制替代。
*
*
*/
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());
}
}
===================================
運(yùn)行結(jié)果是:

大家注意,如果你的直接復(fù)制這些代碼的話,可能會(huì)出現(xiàn)以下異常

看看大家都明白了吧! 系統(tǒng)找不到指定的文件,就是在e盤下新建一個(gè)file文件夾就可以啦!!!
下面代碼詳細(xì)的介紹了File類中的createNewFile()方法:
/**
*
* File中createNewFile方法:
* 當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時(shí),不可分地創(chuàng)建一個(gè)新的空文件。
* 檢查文件是否存在,若不存在則創(chuàng)建該文件,這是單個(gè)操作,對(duì)于其他所有可能影響該文件的文件系統(tǒng)活動(dòng)來(lái)說(shuō),該操作是不可分的。
*
* 注:此方法不應(yīng)該 用于文件鎖定,因?yàn)樗脜f(xié)議可能無(wú)法可靠地工作。應(yīng)該使用 FileLock 機(jī)制替代。
* 返回:是布爾型
*
*/
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());
}
}
運(yùn)行結(jié)果如下:

下面介紹一下File類中delete()方法,代碼如下:
/**
*
* 要操作一個(gè)文件,必須要找到這個(gè)文件
* 在Java中,只有File類能表示一個(gè)文件,所有用File表示一個(gè)文件
* File的屬性就是文件的路徑,虛擬機(jī)會(huì)根據(jù)File類的參數(shù)找到指定的文件
* 找到問(wèn)及那后可以用File類的方法進(jìn)行操作!
*
* delete()方法可以刪除一個(gè)文件或者一個(gè)整個(gè)文件夾(整個(gè)目錄),返回結(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("成功刪除文件");
}
}
}
這個(gè)程序運(yùn)行的結(jié)果:

下面的代碼是介紹查看一個(gè)文件的目錄,以及判斷這個(gè)文件是否是文件夾,代碼如下:
/**
*
* File的一個(gè)方法File.getPath()
* 是將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串。
*
* File的exists方法
* 是測(cè)試此抽象路徑名表示的文件或目錄是否存在。
*
*
* File的getParent()方法
* 是返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒(méi)有指定父目錄,則返回 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){}
}
}
}
運(yùn)行結(jié)果:

再看一個(gè)判斷目錄的方法:
/**
*
* File的一個(gè)方法File.getPath()
* 是將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串。
*
* File的isDirectory()的方法
* 是測(cè)試此抽象路徑名表示的文件是否是一個(gè)目錄。
* 當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在且 是一個(gè)目錄時(shí),返回 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());
}
}
運(yùn)行結(jié)果:

注意下一個(gè)代碼,可能對(duì)你很有幫助啊!!
/**
*
* File的list()方法可以:
* 返回一個(gè)字符串?dāng)?shù)組,
* 這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。
*
* */
import java.io.File;
public class Demo61 {
public static void main(String[] args) {
File f = new File("f:\\book");
//使用list列出
//列出的只是一個(gè)名稱
String[] str = f.list();
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}
這個(gè)程序的運(yùn)行結(jié)果是你目錄下的文件:

下面的程序 你可能會(huì)很感興趣!因?yàn)槟阆胪鍴K,或者你想給別人整個(gè)惡作劇,你必須要掃描下他的電腦,以下方法就實(shí)現(xiàn)了怎樣去掃描一個(gè)電腦里的所有文件(我的代碼選擇的是掃描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);
}
//要不斷列出,因?yàn)榻o出的File類對(duì)象可能是一個(gè)目錄
public static void fun(File f){
//判斷給定的路徑是否是目錄,如果是目錄在列出
if(f.isDirectory()){
File[] file = f.listFiles();
//再依次循環(huán)進(jìn)行判斷
try{
for(int i = 0;i < file.length;i++){
//繼續(xù)把內(nèi)容傳入到fun方法之中進(jìn)行驗(yàn)證
fun(file[i]);
}
}catch(Exception e){}
}
else{
System.out.println(f);
}
}
}
運(yùn)行結(jié)果我就不貼出來(lái)了,因?yàn)镃盤的文件太多啦!!!如果你想知道,自己把代碼帶下看看,你會(huì)很吃驚的!你會(huì)想原來(lái)掃描的原理這么簡(jiǎn)單!!!