java操作文件愛女_Java的IO操作---File類

目標

1)掌握File類作用

2)可以使用file類中方法對文件進行讀寫操作。

File類

唯一與文件有關的類。使用file類可進行創建或刪除操作,要想使用File類,首先觀察File類的構造方法。

public File(String pathname);實例化File類的時候,必須設置好路徑。

0f552f34bd0fe9aabd449d23b1e1c080.png

常量::

public staitc final String pathSeparator;

明明使用了static final定義的常量,這里為什么使用了小寫方式。實際上這屬于JAVA的歷史遺留問題。

實例操作一:創建一個新文件。

創建文件:

public boolean creatNewFile() throws IOExcetion

用以上方法就可以創建文件,但是注意要有異常處理。

在D盤創建一個文件:

importjava.io.File ;importjava.io.IOException ;public classFileDemo01{public static voidmain(String args[]){

File f= new File("d:\\test.txt") ; // 實例化File類的對象,給出路徑

try{

f.createNewFile() ;// 創建文件,根據給定的路徑創建

}catch(IOException e){

e.printStackTrace() ;//輸出異常信息

}

}

};

運行結果:

8b30a7a51ccee0a61a38afa46cc77e6c.png

步驟:首先創建File對象,創建對象的時候要給出文件路徑,然后用這個對象調用creatNewFile()方法,注意調用方法時候要有異常處理。

以上完成了文件創建功能,但是開發中以上程序編寫肯定會出現錯誤,在各個操作系統中,路徑分隔符是不一樣的。例如:

windows使用反斜杠:"\"

Linux中使用正斜杠:"/"

要想讓JAVA可移植增強,最好讓操作系統自動使用分隔符。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

System.out.println("pathSeparator:" + File.pathSeparator) ; //調用靜態常量

System.out.println("separator:" + File.separator) ; //調用靜態常量

}

}

運行結果:

pathSeparator:;

separator:\

要想保持可移植性,在編寫的時候應該使用File類中的常量。修改之前程序。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator+"test.txt") ; //實例化File類的對象

try{

f.createNewFile() ;//創建文件,根據給定的路徑創建

}catch(IOException e){

e.printStackTrace() ;//輸出異常信息

}

}

}

注意:在操作文件的時候一定要注意分隔符,使用File.separator表示。

刪除一個指定的文件

刪除文件方法:

public boolean delete();

將之前建立好的文件刪除掉。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator+"test.txt") ; // 實例化File類的對象

f.delete() ; // 刪除文件

}

}

運行結果:

確實刪除了文件。

此時文件確實刪除了,但是刪除之前最好進行判斷文件是不是存在。

在File類中可以使用exists()方法判斷一個文件是否存在。

public boolean exists();

使用以上代碼增強之前程序。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator+"test.txt") ; //實例化File類的對象

if(f.exists()){ // 如果文件存在則刪除

f.delete() ; //刪除文件

}elseSystem.out.println("文件不存在");

}

}

運行結果:

文件不存在

由于之前已經刪除了,所以這里文件不存在。

綜合創建,刪除文件的操作

要求:給定一個路徑,如果文件存在刪除,不存在,創建之。

importjava.io.File ;importjava.io.IOException ;public classFileDemo06{public static voidmain(String args[]){

File f= new File("d:"+File.separator+"test.txt") ; //實例化File類的對象

if(f.exists()){ //如果文件存在則刪除

f.delete() ; //刪除文件

}else{try{

f.createNewFile() ;//創建文件,根據給定的路徑創建

}catch(IOException e){

e.printStackTrace() ;//輸出異常信息

}

}

}

};

提示:對于文件的后綴可有可無。

創建文件夾

使用mkdir()方法創建文件夾、

public boolean mkdir();

實例;

importjava.io.File ;importjava.io.IOException ;public classFileDemo07{public static voidmain(String args[]){

File f= new File("d:"+File.separator+"mldn") ; //實例化File類的對象

f.mkdir() ; //創建文件夾

}

};

運行結果:創建成功一個名為mldn的文件夾。

列出指定目錄的全部文件。

如果給出一個目錄,可以列出目錄中全部內容,但是列出的方法存在兩個:

1,以字符串數組的形式返回。

public String [] list();

2,以File數組形式返回:

pulbic File [] listFiles();

操作一:list()方法:

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator) ; //實例化File類的對象

String str[] = f.list() ; // 列出給定目錄中的內容

for(int i=0;i

System.out.println(str[i]) ;

}

}

}

運行結果:

$RECYCLE.BIN

360SoftMove

BDSoftMgrData

Config.Msi

FDownload

MSOCache

Program Files

System Volume Information

TrainingPackage_dna

TrainingPackage_zcgl

辦公軟件

我的文檔

搜狗高速下載

搞笑

文件清理.bat

編程軟件

以上只是列出全部文件名字。

操作2,使用listFiles()方法列出。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator) ; //實例化File類的對象

File files[] = f.listFiles() ; // 列出全部內容,注意需要一個files對象數組接受這個返回數組。

for(int i=0;i

System.out.println(files[i]) ;

}

}

}

運行結果:

d:\$RECYCLE.BIN

d:\360SoftMove

d:\BDSoftMgrData

d:\Config.Msi

d:\FDownload

d:\GSP平臺

d:\GS管理套件

d:\MSOCache

d:\Program Files

d:\System Volume Information

d:\TrainingPackage_dna

d:\TrainingPackage_zcgl

d:\久其培訓

d:\辦公軟件

d:\我的文檔

d:\搜狗高速下載

d:\搞笑

d:\文件清理.bat

d:\編程軟件

d:\藍橋杯試題

此時列出的是完整的路徑。這樣對于程序本身是很容易操作的。

判斷一個給定的路徑是否目錄。

在File類中直接使用方法:public boolean?isDirectory();

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[])

{

File f= new File("d:"+File.separator) ; //實例化File類的對象

if(f.isDirectory()){ //判斷是否是目錄

System.out.println(f.getPath() + "路徑是目錄。") ;

}else{

System.out.println(f.getPath()+ "路徑不是目錄。") ;

}

}

}

運行結果:

d:\路徑是目錄。

列出指定目錄的全部內容

如果給定一個目錄,則講目錄的全部文件列出來,但是列的時候可能存在子文件夾,子文件夾也有子文件夾。

254fca32d90f41a20b2abe602a649769.png

應該采用遞歸的形式。

packageThread1;importjava.io.File;importjava.io.IOException;public classdemo1{public static voidmain(String args[]){

File my= new File("d:" + File.separator+"FDownload") ; //操作路徑

print(my) ;

}public static void print(File file){ // 遞歸調用

if(file!=null){ //判斷對象是否為空

if(file.isDirectory()){ //如果是目錄

File f[] = file.listFiles() ; // 列出全部的文件

if(f!=null){ //判斷此目錄能否列出

for(int i=0;i

print(f[i]) ;// 因為給的路徑有可能是目錄,所以,繼續判斷,繼續遞歸。

}

}

}else{

System.out.println(file) ;//輸出路徑

}

}

}

};

運行結果:

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第一集 詩的起源[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第七集 親情詩[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第三集 春江花月夜[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第二集 楓橋夜泊[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第五集 民歌[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第六集 懷鄉詩[高清版].mp4

d:\FDownload\合并\0001.中國網絡電視臺-《詩詞中國》 第四集 黃鶴樓與鸛雀樓[高清版].mp4

這里用到了,判斷路徑是否為文件夾:isDirection()。列出文件夾下目錄方法:listFiles()。還有遞歸。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

openssl創建私有ca

openssl創建私有ca1.ssl大概內容PKI:公鑰基礎設施結構CA:證書權威機構,PKI的核心CRL:證書吊銷列表,使用證書之前需要檢測證書有效性證書存儲格式常見的X509格式包含內容 公鑰有效期限證書的合法擁有人證書該如何使用CA的信息CA簽名…

查詢顯示注釋_SQL的簡單查詢

1.基本的查詢語句-- *代表查詢所有的列select * from <表名>;distinct表示列中不包括重復的值&#xff0c;例如select distinct 姓名&#xff1b;如果是select distinct 姓名,學號&#xff1b;則表示姓名和學號都重復的值才會顯示。as為列設定別名&#xff0c;例如select…

【AC自動機】【數據結構】【樹】【Aho-Corasick automation】AC自動機理解(入門)...

引入 我們首先提出一個問題&#xff1a; 給出n個串每個串的長度≤m 然后給出一個長度為k的串&#xff0c;詢問前n個串中有多少個是匹配成了的 暴力搜索 這題不是sb題目嗎&#xff1f; 隨隨便便O(kmn)跑過。 。。。。 n10000 m50 k1000000 。。。。 好吧——我們用AC自動…

域控dns無法解析域控_域注冊商,DNS和托管

域控dns無法解析域控by ????? ??????????由??????????????? 域名注冊商&#xff0c;DNS和托管 (Domain registrars, DNS, and hosting) 如何正確設置網站 (How to set up your website the right way) It took me a while to set up the infras…

java 棧空間_初學JAVA——棧空間堆空間的理解

1.Person pangzi; //這是在“開拓空間”于棧空間pangzinew Person(); //這是賦值于堆空間上兩步就是在做與空間對應的事。2.值類型直接存入棧空間&#xff0c;如AF&#xff0c;引用類型存入堆空間&#xff0c;在棧空間存有“索引地址”&#xff0c;如當需要B時&#xff0…

二進制安裝kubernetes v1.11.2 (第八章 kube-apiserver 部署)

繼續上一章部署。 八、部署kube-apiserver組件 使用第七章的haproxy和keepalived部署的高可用集群提供的VIP&#xff1a;${MASTER_VIP} 8.1 下載二進制文件&#xff0c;參考 第三章  8.2 創建 kubernetes 證書和私鑰 source /opt/k8s/bin/environment.sh cat > kubernetes-…

element手機驗證格式_vue封裝 element-ui form表單驗證 正則匹配手機號 自定義校驗表格內容...

效果image.png在methods中//檢查手機號isCellPhone(val) {if (!/^1(3|4|5|6|7|8)\d{9}$/.test(val)) {return false;} else {return true;}}在template中v-model"forgetForm.phone"type"text"auto-complete"off"placeholder"請輸入你的手機…

multi-mechanize error: can not find test script: v_user.py問題

從github上下載&#xff0c;安裝multi-mechanize&#xff0c;新建工程&#xff0c;運行工程報錯。 環境&#xff1a; win7-x64, python 2.7 multi-mechanize can not find test script: v_user.py 查看了github上的工程&#xff0c;項目無人維護&#xff0c;這個問題2016年11月…

@RequestMapping 用法詳解之地址映射

引言&#xff1a; 前段時間項目中用到了RESTful模式來開發程序&#xff0c;但是當用POST、PUT模式提交數據時&#xff0c;發現服務器端接受不到提交的數據&#xff08;服務器端參數綁定 沒有加任何注解&#xff09;&#xff0c;查看了提交方式為application/json&#xff0c; 而…

我的第一個網頁 代碼_我在免費代碼營的第一個月

我的第一個網頁 代碼by Elliott McNary埃利奧特麥克納里(Elliott McNary) 我在免費代碼營的第一個月 (My First Month At Free Code Camp) I wanted to build an app that would help artists to make more money.我想開發一個可以幫助藝術家賺更多錢的應用。 I had a clear …

java pem rsa_如何從java中的pfx文件/ pem文件中獲取RSA公鑰的指數和模數值

I want to extract information about RSA Public Key from the pfx file using java.我有一個pfx文件并轉換為x509 Pem文件 . 從pem文件&#xff0c;在終端中使用以下命令&#xff1a;openssl x509 -in file.pem -text我能夠查看公鑰指數和模數值主題公鑰信息&#xff1a;Publ…

jmeter+maven+jenkins自動化接口測試(下)

mavenjmeter已經寫好了&#xff0c;可以通過maven來執行jmeter的接口測試腳本&#xff0c;怎樣實現定時執行測試并發送報告郵件就需要通過jenkins了&#xff08;jmeter或者testng也可以結合不同的郵件jar包來發送郵件&#xff0c;這里使用jenkins&#xff09; 安裝jenkins筆記有…

在使用angularjs過程,ng-repeat中track by的作用

轉載&#xff1a;http://segmentfault.com/q/1010000000405730<div ng-repeat"links in slides"> <div ng-repeat"link in links track by $index">link.name</div></div>Error: [ngRepeat:dupes]這個出錯提示具體到題主的情況…

java判斷讀到末尾_IO流如何判斷讀取到了流的結尾,程序中以-1來判斷,是流中寫入一個EOF表示流結束嗎,底層實現呢?...

-1不是流中寫入的數據。read()方法返回的數據都是unsigned byte&#xff0c;即是[0,255]。底層實現有很多&#xff0c;比如socket IO和文件IO&#xff0c;甚至你自己也可以實現。——————————————————————給兩個類的代碼給你看看&#xff0c;理解一下這個東…

結束書

by William Countiss威廉Countiss 結束書 (Closing the Book on Closures) JavaScript closures are an important, but notoriously confusing concept. There’s no escaping it — if you want to grow as a developer, you need to understand what closures are and how …

java激勵_激勵干個人java的不足之處

1.你需要精通面向對象分析與設計(OOA/OOD)、涉及模式(GOF&#xff0c;J2EEDP)以及綜合模式。你應該十分了解UML&#xff0c;尤其是class&#xff0c;object&#xff0c;interaction以及statediagrams。2.你需要學習JAVA語言的基礎知識以及它的核心類庫(collections&#xff0c;…

Bioconductor軟件安裝與升級

1 安裝工具Bioc的軟件包不能使用直接install.packages函數&#xff0c;它有自己的安裝工具&#xff0c;使用下面的代碼&#xff1a; source("https://bioconductor.org/biocLite.R")biocLite() 上面第二個語句將安裝Bioconductor一些基礎軟件包&#xff0c;包括BiocI…

Laravel Kernel引導流程分析

Laravel Kernel引導流程分析 代碼展示 protected function sendRequestThroughRouter($request) {# $this->app->instance(request, $request);# Facade::clearResolvedInstance(request);// 主要是這句代碼$this->bootstrap();# return (new Pipeline($this->app)…

Android RecyclerView (一) 使用完全解析

轉載請標明出處&#xff1a; http://blog.csdn.net/lmj623565791/article/details/45059587&#xff1b; 本文出自:【張鴻洋的博客】 概述 RecyclerView出現已經有一段時間了&#xff0c;相信大家肯定不陌生了&#xff0c;大家可以通過導入support-v7對其進行使用。 據官方的…

數據透視表日期怎么選范圍_透視范圍

數據透視表日期怎么選范圍by Tiffany White蒂芙尼懷特(Tiffany White) 透視范圍 (Putting Scope in Perspective) In JavaScript, lexical scope deals with where your variables are defined, and how they will be accessible — or not accessible — to the rest of your…