日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java本地文件操作

發(fā)布時(shí)間:2025/3/12 java 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java本地文件操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述:Java本地文件操作,涉及到文件/文件夾的創(chuàng)建,文件/文件夾屬性的讀取與設(shè)置,文件/文件夾的重命名,目錄結(jié)構(gòu)的遍歷,以及文件內(nèi)容的讀取與寫入。

File屬于java.io.File

---在Eclipse的大綱視圖界面(Outline)中有綠色點(diǎn)的是用public修飾的方法,黃色代表protected方法,藍(lán)色代表包方法,紅色代表private方法

---------------------------------------------------------------------------------------------------------------------------------------------

File類常用的方法:

構(gòu)造方法:
File(String)
File(String,String)
File(File,String)
File(URI)
其他:
getName():String獲取文件名
getParent():String獲取上一級(jí)文件的路徑
getParentFile():File返回父級(jí)文件
getPath():String獲取文件的路徑
isAbsolute():boolean判斷是否為絕對(duì)路徑
getAbsolutePath():String獲取絕對(duì)路徑
getAbsoluteFile():File獲取絕對(duì)路徑的File對(duì)象
toURL():URL轉(zhuǎn)化為URL
toURI():URI轉(zhuǎn)化為URI
canRead():boolean判斷是否可讀
canWrite():boolean判斷是否可寫
exists():boolean判斷文件是否存在
isDirectory():boolean判斷是否是一個(gè)文件夾
isFile():boolean判斷是否是文件
isHidden():boolean判斷文件是否隱藏
length():long得到文件的長(zhǎng)度
createNewFile():boolean將File對(duì)象創(chuàng)建為一個(gè)真正的文件
delete():boolean刪除文件
deleteOnExit():void當(dāng)程序退出時(shí)刪除文件
list():String[]列出文件(名稱)
listFiles():File[]列出文件的列表
mkdir():boolean創(chuàng)建文件夾
mkdirs():boolean創(chuàng)建多級(jí)文件夾
renameTo(File):boolean將文件重命名
setReadOnly():boolean將文件設(shè)置為只讀
setWritable(boolean):boolean將文件設(shè)置為可寫
canExecute():boolean判斷文件是否在當(dāng)前操作系統(tǒng)中可執(zhí)行
createTempFile(String,String,File):File創(chuàng)建臨時(shí)文件
compareTo():int文件的對(duì)比

----------------------------------------------------------------------------------------------------------------------------------------

注意:File對(duì)象既可以指代一個(gè)文件,也可以指代一個(gè)文件夾,實(shí)際上File對(duì)象更像是表示文件或文件夾的路徑。
? ?創(chuàng)建File對(duì)象時(shí)傳入文件名稱(帶后綴名)如果沒有指定路徑的話,那么文件會(huì)默認(rèn)為當(dāng)前項(xiàng)目的根目錄下。
? ?在填寫File構(gòu)造方法中參數(shù)的相對(duì)路徑時(shí),一定不要以"/"開頭。
? ? ?../代表上一級(jí)文件夾,也就是工程項(xiàng)目的上一級(jí)。../../代表上一級(jí)的上一級(jí),兩級(jí)向上跳轉(zhuǎn),“./”代表當(dāng)前目錄。

----------------------------------------------------------------------------------------------------------------------------------------

renameTo方法的效果更像是一種文件的移動(dòng),將文件移動(dòng)到指定路徑的同時(shí)進(jìn)行文件名的變更,但是值得注意的是,

renameTo方法必須在同一分區(qū)中進(jìn)行,比如windows系統(tǒng)中的不同盤區(qū),跨盤區(qū)執(zhí)行renameTo方法就是不允許的。而linux系統(tǒng)就不會(huì)收這個(gè)限制。

如果非要進(jìn)行跨區(qū)的文件移動(dòng),就需要用拷貝的相關(guān)方法,而不是文件的重命名。

-------------------------------------------------------------------------------------------------------------------------------------------

在刪除文件夾的時(shí)候,此文件夾必須是空文件夾,否則不能被刪除。

---------------------------------------------------------------------------------------------------------

常用的文件屬性讀取:
File file = new File("test.txt");
//判斷文件是否存在
file.exists()
//讀取文件名稱
file.getName()//這里注意:獲取到的文件名一定是前面Java聲明的file對(duì)象的名字
//讀取文件路徑
file.getPath()//相對(duì)路徑
//讀取文件絕對(duì)路徑
file.getAbsolutePath()
//讀取文件父級(jí)路徑
new File(file.getAbsolutePath).getParent()//注意,因?yàn)閒ile對(duì)象是通過
相對(duì)路徑進(jìn)行構(gòu)造的,因此,在調(diào)用getParent()方法時(shí)會(huì)返回null,因此我們
需要獲取到file的絕對(duì)路徑之后,才可以獲取到file的父級(jí)路徑。
//讀取文件大小
file.length()//返回值是long型的數(shù)值,是字節(jié)(byte)
//判斷文件是否被隱藏。
file.isHidden()
//判斷文件是否可讀
file.canRead()
//判斷文件是否可寫
file.canWrite()
//判斷是否為文件夾
file.isDirectory()

------------------------------------------------------------------------------------------------------------------------

package crc16test;import java.io.File;public class Scannner {public static void main(String[] args) {printFiles(new File("../crc-16"), 1);}/*** 文件打印* @param dir* @param tab 文件縮進(jìn)*/public static void printFiles(File dir, int tab) {//這種打印方式,可以輸出系統(tǒng)的隱藏文件if (dir.isDirectory()) {File next[] = dir.listFiles();for (int i = 0; i < next.length; i++) {for (int j = 0; j < tab; j++) {System.out.print("|--");}System.out.println(next[i].getName());if (next[i].isDirectory()) {printFiles(next[i], tab + 1);}}}} } 輸出結(jié)果: |--.classpath |--.project |--.settings |--|--org.eclipse.core.resources.prefs |--|--org.eclipse.jdt.core.prefs |--bin |--|--crc16test |--|--|--Converters.class |--|--|--CRC.class |--|--|--Crc16.class |--|--|--HelloFile.class |--|--|--MyOuter$MyInner.class |--|--|--MyOuter.class |--|--|--ReadAndWriteFile.class |--|--|--room.html |--|--|--Scannner.class |--|--|--SetProperty.class |--|--|--Solution.class |--|--|--sss.txt |--json.jar |--newFile.txt |--src |--|--crc16test |--|--|--Converters.java |--|--|--CRC.java |--|--|--Crc16.java |--|--|--HelloFile.java |--|--|--MyOuter.java |--|--|--ReadAndWriteFile.java |--|--|--room.html |--|--|--Scannner.java |--|--|--SetProperty.java |--|--|--Solution.java |--|--|--sss.txt |--text.txt ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
package crc16test;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException;public class ReadAndWriteFile {public static void main(String[] args) {File file = new File("text.txt");/* 文件的輸入 */if (file.exists()) {System.err.println("exist");try {// 1.創(chuàng)建一個(gè)文件輸入流FileInputStream fis = new FileInputStream(file);// 2.創(chuàng)建文件輸入流的Reader/*** InputStreamReader有多個(gè)構(gòu)造器,但是因?yàn)镕ileInputStream是字節(jié)輸入流,* 而InputStreamReader是字符輸入流,因此在調(diào)用構(gòu)造器時(shí),我們選擇帶有字符編碼的* 構(gòu)造器,否則會(huì)出現(xiàn)亂碼。另外注意,文件默認(rèn)為GBK編碼,在創(chuàng)建文件的時(shí)候應(yīng)當(dāng)先設(shè)置好字符* 編碼為UTF-8,這樣好統(tǒng)一前后的編碼。*/InputStreamReader isr = new InputStreamReader(fis, "UTF-8");// 3.創(chuàng)建一個(gè)帶有緩沖的輸入流BufferedReader br = new BufferedReader(isr);String line;while ((line = br.readLine()) != null) {System.out.println(line);}br.close();isr.close();fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}} else {System.err.println("THE FILE DOES NOT EXIST");}/* 文件的輸出 *///文件的輸出不必?fù)?dān)心文件是否存在的問題,因?yàn)槌绦驎?huì)自動(dòng)進(jìn)行文件的創(chuàng)建File newFile = new File("newFile.txt");try {FileOutputStream fos = new FileOutputStream(newFile);OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");BufferedWriter bw = new BufferedWriter(osw);// 注意,這種寫入方式,是覆蓋性的。bw.write("123\n");bw.write("456\n");bw.close();osw.close();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println("寫入完成。");} }

輸出結(jié)果:

exist 長(zhǎng)恨歌 一二三四五六,一二三四五六。 六五四三二一,六五四三二一。 一二三四五六,一二三四五六。 六五四三二一,六五四三二一。 寫入完成。

總結(jié)

以上是生活随笔為你收集整理的Java本地文件操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。