這篇文章給大家介紹java中如何使用File類的構(gòu)造函數(shù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、紅寺堡網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
1、IO流(Input Output)
IO流技術(shù)主要的作用是解決設(shè)備與設(shè)備之間的數(shù)據(jù)傳輸問題,比如:硬盤的數(shù)據(jù)--讀取到-->內(nèi)存中 內(nèi)存的數(shù)據(jù)--讀取到-->硬盤中 鍵盤上的數(shù)據(jù)--讀取到-->內(nèi)存中
2、IO流技術(shù)的運(yùn)用場(chǎng)景
導(dǎo)出報(bào)表、上傳大頭照、下載、解析xml文件.....等等 (數(shù)據(jù)保存到硬盤,該數(shù)據(jù)可以做到永久性保存。數(shù)據(jù)一般以文件的形式保存到硬盤上。sun使用一個(gè)File類來描述文件或者文件夾)
3、File類的構(gòu)造函數(shù)(方法)
File(String pathname):指定文件或者文件夾的路徑來創(chuàng)建一個(gè)File文件
File(File parent, String child):根據(jù)parent抽象路徑和child路徑名字符串,創(chuàng)建一個(gè)新的File實(shí)例
File(String parent, String child):
目錄分割符:在Windows機(jī)器上的目錄分隔符是\,在Linux機(jī)器上的目錄分隔符是/
注意:在Windows上面\與/都可以作為目錄分隔符。而且,如果寫/的時(shí)候,只需要寫1個(gè)正斜杠即可,而寫\的時(shí)候,需要寫2個(gè)反斜杠。
package com.dhb.file;
import java.io.File;
import java.io.IOException;
/**
* @author DSHORE / 2018-6-22
*
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
File file = new File("F:/a.txt");//指定路徑 [構(gòu)造函數(shù)]
file.createNewFile();//創(chuàng)建文件(空文件) [方法]
File files = new File("F:\\","b.txt");//第一個(gè)參數(shù)是路徑,第二個(gè)參數(shù)是要?jiǎng)?chuàng)建文件的文件名 [構(gòu)造函數(shù)]
files.createNewFile();//創(chuàng)建文件(空文件) [方法]
}
}4、File類的一些常用方法
創(chuàng)建:
createNewFile():在指定位置創(chuàng)建空文件,成功返回true,如果已存在就不再創(chuàng)建了返回false
mkdir():在指定位置創(chuàng)建目錄,這之后創(chuàng)建最后一級(jí)目錄,如果上級(jí)目錄不存在就拋出異常.
mkdirs():在指定位置創(chuàng)建目錄,這也會(huì)創(chuàng)建路徑中所有不存在的父目錄
renameTo(File dest):重命名文件或文件夾。文件不同時(shí),相當(dāng)于文件的剪切,剪切的時(shí)候不能操作非空文件夾。移動(dòng)/重命名成功返回true,失敗返回false
刪除:
delete() :刪除一個(gè)文件或者空文件夾,如果文件夾不為空,則不能刪除,成返回true,失敗返回false
deleteOnExit(): 在虛擬機(jī)終止時(shí),請(qǐng)求刪除此抽象路徑名的文件或者目錄,保證文件異常時(shí)也可以刪除文件
判斷:
exists():判斷指定的文件或者文件夾是否存在
isFile():判斷是否是一個(gè)文件;如果不存在,則為false
isDirectory():判斷是否是一個(gè)文件夾
isHidden():判斷指定的文件是否是隱藏文件
isAbsolute():判斷指定的文件或文件夾是否是在絕對(duì)路徑下
獲取:
getName():獲取文件或文件夾名稱
getPath():返回的是絕對(duì)路徑,可以是相對(duì)路徑,但是目錄要指定
getAbsolutePath():獲取絕對(duì)路徑
length():獲取文件的大小(字節(jié)為單位)
getParent():獲取文件的父路徑
lastModified():獲取文件最后一次修改的時(shí)間
注意:
. :一個(gè)點(diǎn)表示當(dāng)前路徑
.. :兩個(gè)點(diǎn)表示上一級(jí)路徑
路徑問題:
絕對(duì)路徑:該文件在硬盤上的完整路徑;絕對(duì)路徑一般是以盤符開頭的。
相對(duì)路徑:資源文件相對(duì)于當(dāng)前程序所在路徑。
注意:如果程序當(dāng)前所在路徑與資源文件不再同一個(gè)盤下面,是沒法寫相對(duì)路徑的
5、實(shí)例
package com.dhb.file;
import java.io.File;
import java.io.IOException;
/**
* @author DSHORE / 2018-6-22
*
*/
public class Demo2 {
public static void main(String[] args) throws IOException {
//創(chuàng)建
File file=new File("F:\\aa");
System.out.println("創(chuàng)建文件成功了嗎?"+file.createNewFile());
File dir=new File("F:\\aaa\\aaa");
System.out.println("創(chuàng)建文件夾成功了嗎?"+dir.mkdir());
File dirs=new File("F:\\aaa\\aaa\\aa\\cc\\ddd");
System.out.println("創(chuàng)建多級(jí)文件夾成功了嗎?"+dirs.mkdirs());
File destFile=new File("F:\\aaaw");
System.out.println("重命名文件夾成功嗎?"+dir.renameTo(destFile));
System.out.println("重命名文件成功嗎?"+file.renameTo(destFile));
//刪除
File deletefile=new File("F:\\aaa");
System.out.println("刪除文件/空文件夾成功嗎?"+deletefile.delete());
file.deleteOnExit();//jvm
System.out.println("哈哈哈");
//判斷
File fil=new File("F:\\a.txt");
file.createNewFile();//創(chuàng)建一個(gè)文件
System.out.println("該文件/文件夾存在嗎?"+fil.exists());
System.out.println("判斷是否是一個(gè)文件:"+fil.isFile());
System.out.println("判斷是否是一個(gè)文件夾:"+fil.isDirectory());
System.out.println("隱藏文件嗎?"+fil.isHidden());
System.out.println("是絕對(duì)路徑嗎?"+fil.isAbsolute());
}
}"獲取"的例子
package com.dhb.file;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author DSHORE / 2018-6-25
*
*/
public class Demo3 {
public static void main(String[] args) {
/*File file=new File("..\\homeWork.java");
System.out.println(file.exists());*/
File f=new File("..\\..\\a.txt");//上上級(jí)路徑下的a.txt文件
System.out.println("獲取文件名:"+f.getName());//返回值:a.txt
System.out.println("獲取相對(duì)路徑:"+f.getPath());//返回值:..\..\a.txt 說明:a.txt文件在C:\MyEclipse10路徑下
/** 當(dāng)上面兩條輸出語句的絕對(duì)路徑下沒有a.txt這個(gè)文件時(shí),也是輸出這個(gè)結(jié)果,因?yàn)樗@取的是當(dāng)前對(duì)象f的值*/
System.out.println(f.exists());//返回值:true 說明:C:\MyEclipse10路徑下有a.txt文件
System.out.println("獲取絕對(duì)路徑:"+f.getAbsolutePath());//返回值:C:\MyEclipse10\MyCode\MyJavaCode\..\..\a.txt
System.out.println("獲取文件的大小(字節(jié)為單位):"+f.length());//返回值:10
System.out.println("獲取文件的父路徑:"+f.getParent());//返回值:..\.. 說明:其父路徑為C:\MyEclipse10
long lm=f.lastModified();
Date date=new Date(lm);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println("獲取文件最后一次修改的時(shí)間:"+sdf.format(date));//返回值:2018年06月25日 11:29:49
}
}運(yùn)行結(jié)果圖

附錄1
與文件夾操作相關(guān):
static File[] listRoots():列出所有的根目錄(Windows所有系統(tǒng)盤符)
list():返回指定目錄下的所有文件或文件夾名,包含隱藏文件(返回的文件/文件夾名是字符串,不可再對(duì)文件/文件夾進(jìn)行操作)
listFiles():返回指定目錄下的所有文件或文件夾名,包含隱藏文件(可以再對(duì)文件/文件夾進(jìn)行操作)
package com.dhb.file;
import java.io.File;
/**
* @author DSHORE / 2018-6-25
*
*/
public class Demo4 {
public static void main(String[] args) {
File[] roots=File.listRoots();
for (File file : roots) {
System.out.println(file);
/* C:\ //運(yùn)行結(jié)果
* D:\
* E:\
* F:\
* G:\
* H:\
* */
}
File file=new File("F:\\MyJavaCode");
String[] s=file.list();
for (String string : s) {
System.out.println(string);//返回指定目錄下的所有文件或文件夾名,包含隱藏文件(返回的文件/文件夾名是字符串,不可再對(duì)文件/文件夾進(jìn)行操作)
}
File[] f=file.listFiles();
for (File file2 : f) {
System.out.println(file2.getName());//返回指定目錄下的所有文件或文件夾名,包含隱藏文件(可以再對(duì)文件/文件夾進(jìn)行操作)
}
}
}運(yùn)行結(jié)果圖


后面兩條輸出語句的結(jié)果都一樣
附錄2
例1:
package com.dhb.file;
import java.io.File;
/**
* @author DSHORE / 2018-6-25
*
*/
/* 需求1:指定一個(gè)文件夾,然后返回文件夾下面所有java文件
* */
public class Demo5 {
public static void main(String[] args) {
listJava(new File("F:\\MyJavaCode"));
}
public static void listJava(File dir){
File[] file=dir.listFiles();
for (File file2 : file) {
//方法1
if(file2.getName().endsWith(".java")){
System.out.println(file2.getName());
}
//方法2:正則表達(dá)式
String fileName=file2.getName();
if(fileName.matches(".+\\.java")){
System.out.println(fileName);
}
}
}
}運(yùn)行結(jié)果圖

例2:
package com.dhb.file;
import java.io.File;
/**
* @author DSHORE / 2018-6-26
*
*/
/*
* 需求2:指定一個(gè)文件夾,然后列出文件夾下面的所有子文件與文件夾,但是 格式要如下
*
* 文件:
* 文件名1
* 文件名2
* 文件名2
*
* 文件夾:
* 文件夾1
* 文件夾2
* 文件夾3
* */
public class Demo6 {
public static void listJava2(File dir){
File[] file=dir.listFiles();
System.out.println("以下是文件:");
for (File file2 : file) {
if(file2.isFile()){//判斷其是否是文件
System.out.println(file2.getName());
}
}
System.out.println("以下是文件夾:");
for (File file2 : file) {
if(file2.isDirectory()){//判斷其是否是文件夾
System.out.println(file2.getName());
}
}
}
public static void main(String[] args) {
listJava2(new File("F:\\MyJavaCode"));
}
}運(yùn)行結(jié)果圖

附錄3
package com.dhb.file;
import java.io.File;
/**
* @author DSHORE / 2018-6-26
*
*/
//需求:掃描電腦中所有文件夾和文件以及文件夾下的文件和文件夾,或掃描指定盤符下的所有文件和文件夾等等
public class Demo7 {
public static void listDirtory(String dir){
File f=new File(dir);
File[] f2=f.listFiles();//得到文件和文件夾
if(f2==null){
return;
}else{
for (int i = 0; i < f2.length; i++) {
if(f2[i].isDirectory()){//判斷是否是 文件夾
System.out.println(f2[i].getAbsolutePath()+" \"is director file\"");//返回值是“文件夾”
listDirtory(f2[i].getAbsolutePath());//繼續(xù)掃描文件夾里面的文件和文件夾
}else{
System.out.println(f2[i].getAbsolutePath());//返回值是“文件”
}
}
}
}
public static void main(String[] args) {
/*File[] f=File.listRoots();//掃描電腦中所有根盤符
for (File file : f) {
System.out.println(file);
listDirtory(file.toString());//繼續(xù)掃描文件夾里面的文件和文件夾
}*/
//掃描當(dāng)前磁盤
listDirtory(File.separator);
//掃描指定磁盤
//listDirtory("F:\\");
}
}運(yùn)行結(jié)果圖(文件和文件夾太多,下面只顯示部分)路徑的最后一級(jí)是文件/文件夾

附錄4
package com.dhb.file;
import java.io.File;
/**
* @author DSHORE / 2018-7-4
*
*/
//需求:刪除磁盤中指定的文件夾里面的所有文件和文件夾
public class Demo12 {
public static void delDir(File dir){
File[] files=dir.listFiles();
if(files != null){
for (int i = 0; i < files.length; i++) {
if(files[i].isFile()){
boolean b = files[i].delete();
if(b){
System.out.println(files[i].getAbsolutePath()+"\'文件刪除成功\'");
}
}else{
delDir(files[i]);
}
}
}//留下根目錄,根目錄里面的文件和文件夾全刪了
for (int j = 0; j < files.length; j++) {
if (files[j].isDirectory()) {
boolean b2 = files[j].delete();
//dir.delete();//刪除根目錄
if (b2) {
System.out.println(files[j].getAbsolutePath()+"\'目錄刪除成功\'");
}
}
}
if ("F:\\day".equals(dir.getAbsolutePath())) {
boolean b3 = dir.delete();//刪除根目錄
if (b3) {
System.out.println(dir.getAbsolutePath()+"\'根目錄刪除成功\'");
}
}
}
public static void main(String[] args) {
File f=new File("F:\\day");
delDir(f);
}
}刪除前


刪除后(程序運(yùn)行后)


關(guān)于java中如何使用File類的構(gòu)造函數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章題目:java中如何使用File類的構(gòu)造函數(shù)
分享路徑:http://www.chinadenli.net/article8/iiijip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、ChatGPT、軟件開發(fā)、面包屑導(dǎo)航、網(wǎng)站制作、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)