欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中的Io(input與output)操作總結(jié)(二)

 更新時(shí)間:2013年01月10日 10:27:14   作者:  
這一節(jié)我們來討論關(guān)于文件自身的操作包括:創(chuàng)建文件對象、創(chuàng)建和刪除文件、文件的判斷和測試、創(chuàng)建目錄、獲取文件信息、列出文件系統(tǒng)的根目錄、列出目錄下的所有文件,等等,感興趣的朋友可以了解下
文件的操作
這一節(jié)我們來討論關(guān)于文件自身的操作
不浪費(fèi)唾沫了,用代碼說話……
實(shí)例1:創(chuàng)建文件對象
復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
//創(chuàng)建要操作的文件路徑和名稱
//其中,F(xiàn)ile.separator表示系統(tǒng)相關(guān)的分隔符,Linux下為:/ Windows下為:\\
//path在此程序里面代表父目錄,不包含子文件
String path = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator;
//childPath在此程序里面代表子目錄,包含子文件
String childPath = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator + "demo.txt";
//用父目錄和子文件分隔的方式構(gòu)造File對象
//也可以寫成 new File("/home/siu/work","test.txt");
File f1 = new File(path,"test.txt");
//使用絕對路徑來構(gòu)造File對象
//也可以寫成new File("/home/siu/work/demo.txt");
File f2 = new File(childPath);
//創(chuàng)建父目錄的文件對象
File d = new File(path);
//使用已有父目錄對象和子文件構(gòu)建新的File對象
File f3 = new File(d,"hello.txt");
System.out.println("f1的路徑" + f1);
System.out.println("f2的路徑" + f2);
System.out.println("f3的路徑" + f3);
}
}

編譯后,顯示各個(gè)File對象所指向的絕對路徑

 
實(shí)例2:創(chuàng)建和刪除文件

復(fù)制代碼 代碼如下:

import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) {
String Path = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator + "demo.txt";
File f = new File(Path);
try {
/*因?yàn)閯?chuàng)建和刪除文件涉及到底層操作,所以有可能會引發(fā)異常*/
//如果創(chuàng)建成功則會返回true
//如果已存在該文件,則創(chuàng)建不成功,返回flase,別以為會覆蓋
System.out.println("創(chuàng)建文件:" + f.createNewFile());
//刪除文件,成功返回true,否則返回flase
System.out.println("刪除文件:" + f.delete());
//此方法表示在虛擬機(jī)退出時(shí)刪除文件
//原因在于:程序運(yùn)行時(shí)有可能發(fā)生異常造成直接退出
//清理殘余很有必要~!
f.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
}
}

你看,創(chuàng)建成功,所以返回true,因?yàn)橐呀?jīng)創(chuàng)建好了,所以刪除也能成功


實(shí)例3:文件的判斷和測試

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
String Path = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator + "Demo.txt";
File f = new File(Path);
//判斷文件是否可執(zhí)行
System.out.println("f是否可執(zhí)行:" + f.canExecute());
//判斷文件是否存在
System.out.println("f是否存在:" + f.exists());
//判斷文件是否可讀
System.out.println("f是否可讀:" + f.canRead());
//判斷文件是否可寫
System.out.println("f是否可寫:" + f.canWrite());
//判斷文件是否為絕對路徑名
System.out.println("f是否絕對路徑:" + f.isAbsolute());
//判斷文件是否為一個(gè)標(biāo)準(zhǔn)文件
System.out.println("f是否為標(biāo)準(zhǔn)文件:" + f.isFile());
//判斷文件是否為一個(gè)目錄
System.out.println("f是否為目錄:" + f.isDirectory());
//判斷文件是否隱藏
System.out.println("f是否隱藏:" + f.isHidden());
}
}

這里使用不同的文件做測試便可,設(shè)置文件屬性什么的也很簡單
需要注意的是,如果使用isFlie()和isDirectory()進(jìn)行測試,則先要確定文件對象是否已經(jīng)創(chuàng)建


實(shí)例4:創(chuàng)建目錄

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
String path = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator;
//path在此處作為父目錄存在
File f1 = new File(path,"/abc");
File f2 = new File(path,"/d/e/f/g");
//創(chuàng)建一個(gè)目錄
System.out.println(f1.mkdir());
//遞歸創(chuàng)建目錄
System.out.println(f2.mkdirs());
}
}

注意看路徑


實(shí)例5:獲取文件信息

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
String path = File.separator + "home" + File.separator + "siu" +
File.separator + "work" + File.separator + "demo.txt";
File f = new File(path);
//返回文件的絕對路徑
//此處返回值為String
System.out.println("f的絕對路徑名:" + f.getAbsolutePath());
//返回文件的絕對路徑
//此處返回值為File
System.out.println("f的絕對路徑對象:" + f.getAbsoluteFile());
//返回文件或目錄的名稱
System.out.println("f的名稱:" + f.getName());
//返回文件的相對路徑
//構(gòu)造函數(shù)中封裝的是什么路徑,就返回什么路徑
System.out.println("f的路徑:" + f.getPath());
//返回父目錄的路徑
//如果在構(gòu)造函數(shù)中的路徑不是絕對路徑,那么此處返回null
System.out.println("f的父目錄:" + f.getParent());
}
}

這些都是比較常用并且功能類似的方法,至于不常用的信息獲取參考API即可


實(shí)例6:列出文件系統(tǒng)的根目錄

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
//listRoots()是一個(gè)靜態(tài)方法,返回文件數(shù)組
File[] files = File.listRoots();
//foreach循環(huán)打印File對象
for (File x : files) {
System.out.println(x);
}
}
}

因?yàn)楸镜丨h(huán)境是Linux,所以根目錄只有一個(gè) /,如果是Windows就能列出你的所有盤符


實(shí)例7:列出目錄下的所有文件

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
String path = File.separator + "opt" + File.separator;
File f = new File(path);
//方式一:list()
//返回一個(gè)包含指定目錄下所有文件名的字符串?dāng)?shù)組
//如果不是一個(gè)目錄則返回null
String[] files = f.list();
for (String x : files) {
System.out.println(x);
}
//方式二:listFiles()
//返回File數(shù)組
/*
File[] files = f.listFiles();
for (File x : files) {
//如果需要包含路徑,則直接打印x即可
System.out.println(x.getName());
}
*/
}
}

pic
兩者都是返回目錄下的所有文件名,但是第二種方式更實(shí)用,為遞歸列出文件做鋪墊


實(shí)例8:遞歸列出目錄下所有文件

復(fù)制代碼 代碼如下:

import java.io.File;
public class Demo {
public static void main(String[] args) {
String path = File.separator + "opt" + File.separator;
File f = new File(path);
//調(diào)用下面的遞歸方法
print(f);
}
//用遞歸的方式打印目錄列表
public static void print(File f) {
if(f.isDirectory()){
File[] files = f.listFiles();
for(File x : files) {
print(x);
}
} else {
System.out.println(f);
}
}
}

好吧,打印內(nèi)容太多了,意思意思就行了


關(guān)于文件的基本操作就講到這,想到再繼續(xù)補(bǔ)充……
下續(xù)章節(jié)將講解java io的其他操作

相關(guān)文章

  • SpringCloud之動態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn)

    SpringCloud之動態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud 之動態(tài)刷新、重試、服務(wù)化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • java判斷class子類或父類的實(shí)例方法

    java判斷class子類或父類的實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于java判斷class子類或父類的實(shí)例方法,需要的朋友們可以參考學(xué)習(xí)下。
    2020-02-02
  • 三級聯(lián)動省市ajax的代碼

    三級聯(lián)動省市ajax的代碼

    這篇文章主要為大家詳細(xì)介紹了ajax實(shí)現(xiàn)省市三級聯(lián)動效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • Java類加載器ClassLoader的使用詳解

    Java類加載器ClassLoader的使用詳解

    類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個(gè)實(shí)例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-12-12
  • JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例

    JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例

    這篇文章主要介紹了JAVA 格式化JSON數(shù)據(jù)并保存到j(luò)son文件中的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • SpringMVC?Restful風(fēng)格與中文亂碼問題解決方案介紹

    SpringMVC?Restful風(fēng)格與中文亂碼問題解決方案介紹

    Restful就是一個(gè)資源定位及資源操作的風(fēng)格,不是標(biāo)準(zhǔn)也不是協(xié)議,只是一種風(fēng)格,是對http協(xié)議的詮釋,下面這篇文章主要給大家介紹了關(guān)于SpringMVC對Restful風(fēng)格支持的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • SpringBoot加載應(yīng)用事件監(jiān)聽器代碼實(shí)例

    SpringBoot加載應(yīng)用事件監(jiān)聽器代碼實(shí)例

    這篇文章主要介紹了SpringBoot加載應(yīng)用事件監(jiān)聽器代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Spring AOP定義AfterReturning增加實(shí)例分析

    Spring AOP定義AfterReturning增加實(shí)例分析

    這篇文章主要介紹了Spring AOP定義AfterReturning增加,結(jié)合實(shí)例形式分析了Spring面相切面AOP定義AfterReturning增加相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • java連接hdfs ha和調(diào)用mapreduce jar示例

    java連接hdfs ha和調(diào)用mapreduce jar示例

    這篇文章主要介紹了Java API連接HDFS HA和調(diào)用MapReduce jar包,需要的朋友可以參考下
    2014-03-03
  • SpringBoot啟動時(shí)自動執(zhí)行代碼的幾種實(shí)現(xiàn)方式

    SpringBoot啟動時(shí)自動執(zhí)行代碼的幾種實(shí)現(xiàn)方式

    這篇文章主要給大家介紹了關(guān)于SpringBoot啟動時(shí)自動執(zhí)行代碼的幾種實(shí)現(xiàn)方式,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評論