国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件

這篇具有很好參考價(jià)值的文章主要介紹了【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??認(rèn)識(shí)文件

我們先來認(rèn)識(shí)狹義上的文件(file)。針對(duì)硬盤這種持久化存儲(chǔ)的I/O設(shè)備,當(dāng)我們想要進(jìn)行數(shù)據(jù)保存時(shí),往往不是保存成一個(gè)整體,而是獨(dú)立成一個(gè)個(gè)的單位進(jìn)行保存,這個(gè)獨(dú)立的單位就被抽象成文件的概念,就類似辦公桌上的一份份真實(shí)的文件一般。
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
文件除了有數(shù)據(jù)內(nèi)容之外,還有一部分信息,例如文件名、文件類型、文件大小等并不作為文件的數(shù)據(jù)而存在,我們把這部分信息可以視為文件的元信息
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??樹型結(jié)構(gòu)組織和目錄

同時(shí),隨著文件越來越多,對(duì)文件的系統(tǒng)管理也被提上了日程,如何進(jìn)行文件的組織呢,一種合乎自然的想法出現(xiàn)了,就是按照層級(jí)結(jié)構(gòu)進(jìn)行組織 —— 也就是我們數(shù)據(jù)結(jié)構(gòu)中學(xué)習(xí)過的樹形結(jié)構(gòu)。這樣,一種專門用來存放管理信息的特殊文件誕生了,也就是我們平時(shí)所謂文件夾(folder)或者目錄(directory)的概念。
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??文件路徑(Path)

如何在文件系統(tǒng)中如何定位我們的一個(gè)唯一的文件就成為當(dāng)前要解決的問題,但這難不倒計(jì)算機(jī)科學(xué)家,因?yàn)閺臉湫徒Y(jié)構(gòu)的角度來看,樹中的每個(gè)結(jié)點(diǎn)都可以被一條從根開始,一直到達(dá)的結(jié)點(diǎn)的路徑所描述,而這種描述方式就被稱為文件的絕對(duì)路徑(absolute path)
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
除了可以從根開始進(jìn)行路徑的描述,我們可以從任意結(jié)點(diǎn)出發(fā),進(jìn)行路徑的描述,而這種描述方式就被
稱為相對(duì)路徑(relative path),相對(duì)于當(dāng)前所在結(jié)點(diǎn)的一條路徑

【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??知識(shí)擴(kuò)展

即使是普通文件,根據(jù)其保存數(shù)據(jù)的不同,也經(jīng)常被分為不同的類型,我們一般簡單的劃分為文本文件和二進(jìn)制文件,分別指代保存被字符集編碼的文本和按照標(biāo)準(zhǔn)格式保存的非被字符集編碼過的文件。
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
Windows 操作系統(tǒng)上,會(huì)按照文件名中的后綴來確定文件類型以及該類型文件的默認(rèn)打開程序。但這個(gè)習(xí)俗并不是通用的,在 OSX、Unix、Linux 等操作系統(tǒng)上,就沒有這樣的習(xí)慣,一般不對(duì)文件類型做如此精確地分類。
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
文件由于被操作系統(tǒng)進(jìn)行了管理,所以根據(jù)不同的用戶,會(huì)賦予用戶不同的對(duì)待該文件的權(quán)限,一般地可以認(rèn)為有可讀、可寫、可執(zhí)行權(quán)限

【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
Windows 操作系統(tǒng)上,還有一類文件比較特殊,就是平時(shí)我們看到的快捷方式(shortcut),這種文件只是對(duì)真實(shí)文件的一種引用而已。其他操作系統(tǒng)上也有類似的概念,例如,軟鏈接(soft link)等
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
最后,很多操作系統(tǒng)為了實(shí)現(xiàn)接口的統(tǒng)一性,將所有的 I/O 設(shè)備都抽象成了文件的概念,使用這一理念,最為知名的就是 Unix、Linux 操作系統(tǒng) —— 萬物皆文件

??Java 中操作文件

Java 中通過 java.io.File 類來對(duì)一個(gè)文件(包括目錄)進(jìn)行抽象的描述。

值得注意的是,有 File 對(duì)象,并不代表真實(shí)存在該文件

??File 概述

我們先來看看 File 類中的常見屬性、構(gòu)造方法和方法

??屬性

修飾符及類型 屬性 說明
static String pathSeparator 依賴于系統(tǒng)的路徑分隔符,String 類型的表示
static char pathSeparator 依賴于系統(tǒng)的路徑分隔符,char 類型的表示

??構(gòu)造方法

簽名 說明
File(File parent, Stringchild) 根據(jù)父目錄 + 孩子文件路徑,創(chuàng)建一個(gè)新的 File 實(shí)例
File(String pathname) 根據(jù)文件路徑創(chuàng)建一個(gè)新的 File 實(shí)例,路徑可以是絕對(duì)路徑或者相對(duì)路徑
File(String parent, Stringchild) 根據(jù)父目錄 + 孩子文件路徑,創(chuàng)建一個(gè)新的 File 實(shí)例,父目錄用路徑表示

??方法

修飾符及返回值類型 方法簽名 說明
String getParent() 返回 File 對(duì)象的父目錄文件路徑
String getName() 返回 FIle 對(duì)象的純文件名稱
String getPath() 返回 File 對(duì)象的文件路徑
String getAbsolutePath() 返回 File 對(duì)象的絕對(duì)路徑
String getCanonicalPath() 返回 File 對(duì)象的修飾過的絕對(duì)路徑
boolean exists() 判斷 File 對(duì)象描述的文件是否真實(shí)存在
boolean isDirectory() 判斷 File 對(duì)象代表的文件是否是一個(gè)目錄
boolean isFile() 判斷 File 對(duì)象代表的文件是否是一個(gè)普通文件
boolean createNewFile() 根據(jù) File 對(duì)象,自動(dòng)創(chuàng)建一個(gè)空文件。成功創(chuàng)建后返回 true
boolean delete() 根據(jù) File 對(duì)象,刪除該文件。成功刪除后返回 true
void deleteOnExit() 根據(jù) File 對(duì)象,標(biāo)注文件將被刪除,刪除動(dòng)作會(huì)到JVM 運(yùn)行結(jié)束時(shí)才會(huì)進(jìn)行
String[] list() 返回 File 對(duì)象代表的目錄下的所有文件名
File[] listFiles() 返回 File 對(duì)象代表的目錄下的所有文件,以 File 對(duì)象表示
boolean mkdir() 創(chuàng)建 File 對(duì)象代表的目錄
boolean mkdirs() 創(chuàng)建 File 對(duì)象代表的目錄,如果必要,會(huì)創(chuàng)建中間目錄
boolean renameTo(Filedest) 進(jìn)行文件改名,也可以視為我們平時(shí)的剪切、粘貼操作
boolean canRead() 判斷用戶是否對(duì)文件有可讀權(quán)限
boolean canWrite() 判斷用戶是否對(duì)文件有可寫權(quán)限

??File使用實(shí)例代碼演示

??實(shí)例一

觀察get系列的特點(diǎn)和差異

代碼如下:

import java.io.File;
import java.io.IOException;

public class IODemo1 {
    public static void main(String[] args) throws IOException {
        File file = new File("./遇事問春風(fēng)乄.txt");
        System.out.println(file.getName());
        System.out.println(file.getParent());
        System.out.println(file.getPath());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getCanonicalPath());
    }
}

注意:有 File 對(duì)象,并不代表真實(shí)存在該文件

也就是說這里的遇事問春風(fēng)乄可能根本不存在

運(yùn)行結(jié)果如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??實(shí)例二

普通文件的創(chuàng)建、刪除

代碼如下:

import java.io.File;
import java.io.IOException;

public class IOdemo2 {
    public static void main(String[] args) throws IOException {
        File file = new File("./遇事問春風(fēng)乄.txt"); // 要求該文件不存在,才能看到相同的現(xiàn)象
        //文件是否存在
        System.out.println(file.exists());
        //是否是文件目錄
        System.out.println(file.isDirectory());
        //是否為普通文件
        System.out.println(file.isFile());
        //創(chuàng)建該文件
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        //如果有重復(fù),則不會(huì)創(chuàng)建。返回false
        System.out.println(file.createNewFile());
    }
}

結(jié)果如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
如果你跟博主一樣是使用IDEA編譯器的話,還可以看到該文件路徑下已經(jīng)產(chǎn)生了該文件
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??實(shí)例三

普通文件的刪除

代碼如下:

import java.io.File;
import java.io.IOException;

public class IODemo3 {
    public static void main(String[] args) throws IOException {
        File file = new File("./遇事問春風(fēng)乄.txt"); // 要求該文件不存在,才能看到相同的現(xiàn)象
        System.out.println(file.exists());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        System.out.println(file.delete());
        System.out.println(file.exists());
    }
}

結(jié)果展示:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??實(shí)例四

觀察 deleteOnExit 的現(xiàn)象

我們先來觀察以下代碼,沒有加deleteOnExit

import java.io.File;
import java.io.IOException;

public class IODemo4 {
    public static void main(String[] args) throws IOException {
        File file = new File("./遇事問春風(fēng)乄.txt"); // 要求該文件不存在,才能看到相同的現(xiàn)象
        System.out.println(file.exists());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        //file.deleteOnExit();
        System.out.println(file.exists());
    }
}

結(jié)果如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
注意這時(shí)候我們是可以看到我們創(chuàng)建了該文件的
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
當(dāng)我們加上deleteOnExit后再來看看運(yùn)行結(jié)果

【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
但是呢,當(dāng)程序運(yùn)行結(jié)束后卻觀察不到該路徑下的該文件。

這就是deleteOnExit方法的效果

??實(shí)例五

觀察目錄的創(chuàng)建

import java.io.File;

public class IODemo5 {
    public static void main(String[] args) {
        File dir = new File("IO-dir"); // 要求該目錄不存在,才能看到相同的現(xiàn)象
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
        System.out.println(dir.mkdir());
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
    }
}

結(jié)果如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??實(shí)例六

觀察目錄創(chuàng)建2——mkdirs

import javax.swing.*;
import java.io.File;

public class IODemo5 {
    public static void main(String[] args) {
        File dir = new File("./IO-dir/aa/bb"); // 要求所有目錄不存在,才能看到相同的現(xiàn)象
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
        System.out.println(dir.mkdir());
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
    }
}

運(yùn)行結(jié)果如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
mkdir() 的時(shí)候,如果中間目錄不存在,則無法創(chuàng)建成功; mkdirs() 可以解決這個(gè)問題。

import javax.swing.*;
import java.io.File;

public class IODemo5 {
    public static void main(String[] args) {
        File dir = new File("./IO-dir/aa/bb"); // 要求所有目錄不存在,才能看到相同的現(xiàn)象
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
        System.out.println(dir.mkdirs());
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
    }
}

結(jié)果展示:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

??實(shí)例七

觀察文件重命名

首先創(chuàng)建一個(gè)文件如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作
文件重命名如下:
【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件,JavaEE初階,java,java-ee,開發(fā)語言,文件操作

?總結(jié)

關(guān)于《【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件》就講解到這兒,感謝大家的支持,歡迎各位留言交流以及批評(píng)指正,如果文章對(duì)您有幫助或者覺得作者寫的還不錯(cuò)可以點(diǎn)一下關(guān)注,點(diǎn)贊,收藏支持一下!文章來源地址http://www.zghlxwxcb.cn/news/detail-733997.html

到了這里,關(guān)于【JavaEE初階】 認(rèn)識(shí)文件與Java中操作文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Java EE初階十六】網(wǎng)絡(luò)原理(一)

    【Java EE初階十六】網(wǎng)絡(luò)原理(一)

    ? ? ? ? 在網(wǎng)絡(luò)原理中主要學(xué)習(xí)TCP/IP四層模型中的重點(diǎn)網(wǎng)絡(luò)協(xié)議 ? ? ? ? 應(yīng)用層是和程序員接觸最密切的; ????????應(yīng)用程序:在應(yīng)用層這里,很多時(shí)候都是程序員自定義應(yīng)用層協(xié)議(步驟:1、根據(jù)需求,明確要傳輸?shù)男畔ⅲ?、約定好信息按照什么樣的格式來組織)的

    2024年02月20日
    瀏覽(20)
  • 【Java EE初階六】多線程案例(單例模式)

    【Java EE初階六】多線程案例(單例模式)

    ????????單例模式是一種設(shè)計(jì)模式,設(shè)計(jì)模式是我們必須要掌握的一個(gè)技能; ????????設(shè)計(jì)模式是軟性的規(guī)定,且框架是硬性的規(guī)定,這些都是技術(shù)大佬已經(jīng)設(shè)計(jì)好的; ????????一般來說設(shè)計(jì)模式有很多種,且不同的語言會(huì)有不同的設(shè)計(jì)模式,(同時(shí) 設(shè)計(jì)模式也可

    2024年02月03日
    瀏覽(20)
  • 【Java EE初階三 】線程的狀態(tài)與安全(下)

    【Java EE初階三 】線程的狀態(tài)與安全(下)

    ??????? ?線程安全 : 某個(gè)代碼,不管它是單個(gè)線程執(zhí)行,還是多個(gè)線程執(zhí)行,都不會(huì)產(chǎn)生bug,這個(gè)情況就成為“線程安全”。 ???????? 線程不安全 : 某個(gè)代碼,它單個(gè)線程執(zhí)行,不會(huì)產(chǎn)生bug,但是多個(gè)線程執(zhí)行,就會(huì)產(chǎn)生bug,這個(gè)情況就成為 “線程不安全”,或者

    2024年02月03日
    瀏覽(20)
  • 【Java EE 初階】TCP協(xié)議的安全效率機(jī)制

    【Java EE 初階】TCP協(xié)議的安全效率機(jī)制

    目錄 1.應(yīng)用層協(xié)議 2.傳輸層協(xié)議 3.UDP協(xié)議格式 4.TCP協(xié)議格式 5.TCP的安全效率機(jī)制 1.確認(rèn)應(yīng)答機(jī)制 2.超時(shí)重傳機(jī)制 但是,主機(jī)A未收到B發(fā)來的確認(rèn)應(yīng)答,也可能是因?yàn)锳CK丟失了; 3.連接管理機(jī)制 ?編輯 面試題:會(huì)不會(huì)有可能變成三次揮手? 面試題:第二個(gè)FIN丟包了如何處理?

    2024年02月09日
    瀏覽(21)
  • 【JavaEE基礎(chǔ)學(xué)習(xí)打卡02】是時(shí)候了解Java EE了!

    【JavaEE基礎(chǔ)學(xué)習(xí)打卡02】是時(shí)候了解Java EE了!

    ?? 本系列教程適用于 Java Web 初學(xué)者、愛好者,小白白。我們的天賦并不高,可貴在努力,堅(jiān)持不放棄。堅(jiān)信量最終引發(fā)質(zhì)變,厚積薄發(fā)。 ?? 文中白話居多,盡量以小白視角呈現(xiàn),幫助大家快速入門。 ?? 我是 蝸牛老師 ,之前網(wǎng)名是 Ongoing蝸牛 ,人如其名,干啥都慢,所

    2024年02月12日
    瀏覽(22)
  • 【JavaEE基礎(chǔ)學(xué)習(xí)打卡03】Java EE 平臺(tái)有哪些內(nèi)容?

    【JavaEE基礎(chǔ)學(xué)習(xí)打卡03】Java EE 平臺(tái)有哪些內(nèi)容?

    ?? 本系列教程適用于Java Web初學(xué)者、愛好者,小白白。我們的天賦并不高,可貴在努力,堅(jiān)持不放棄。堅(jiān)信量最終引發(fā)質(zhì)變,厚積薄發(fā)。 ?? 文中白話居多,盡量以小白視角呈現(xiàn),幫助大家快速入門。 ?? 我是 蝸牛老師 ,之前網(wǎng)名是 Ongoing蝸牛 ,人如其名,干啥都慢,所以

    2024年02月12日
    瀏覽(20)
  • 【Java EE初階二十二】https的簡單理解

    【Java EE初階二十二】https的簡單理解

    ?????????當(dāng)前網(wǎng)絡(luò)上,主要都是 HTTPS 了,很少能見到 HTTP.實(shí)際上 HTTPS 也是基于 HTTP.只不過 HTTPS 在 HTTP 的基礎(chǔ)之上, 引入了\\\"加密\\\"機(jī)制;引入 HTTPS 防止你的數(shù)據(jù)被黑客篡改 ; ????????HTTPS 就是一個(gè)重要的保護(hù)措施.之所以能夠安全, 最關(guān)鍵的在于\\\"加密”; ? ? ? ? 明文:

    2024年02月22日
    瀏覽(19)
  • 【Java EE初階八】多線程案例(計(jì)時(shí)器模型)

    【Java EE初階八】多線程案例(計(jì)時(shí)器模型)

    ????????計(jì)時(shí)器類似鬧鐘,有定時(shí)的功能,其主要是到時(shí)間就會(huì)執(zhí)行某一操作,即可以指定時(shí)間,去執(zhí)行某一邏輯(某一代碼)。 ????????在java標(biāo)準(zhǔn)庫中,提供了Timer類,Timer類的核心方法是schedule( 里面包含兩個(gè)參數(shù),一個(gè)是要執(zhí)行的任務(wù)代碼,一個(gè)是設(shè)置多久之后

    2024年01月21日
    瀏覽(22)
  • 【Java EE初階二十一】http的簡單理解(二)

    【Java EE初階二十一】http的簡單理解(二)

    ????????Referer 描述了當(dāng)前頁面是從哪個(gè)頁面跳轉(zhuǎn)來的,如果是直接在地址欄輸入 url(或者點(diǎn)擊收藏夾中的按鈕) 都是沒有 Referer。如下圖所示: ????????HTTP 最大的問題在于\\\"明文傳輸”,明文傳輸就容易被第三方獲取并篡改. ????????HTTPS 針對(duì) HTTP 數(shù)據(jù)進(jìn)行了加密 (h

    2024年02月22日
    瀏覽(17)
  • 【Java EE初階十五】網(wǎng)絡(luò)編程TCP/IP協(xié)議(二)

    【Java EE初階十五】網(wǎng)絡(luò)編程TCP/IP協(xié)議(二)

    ? ? ? ? tcp的socket api和U大片的socket api差異很大,但是和前面所講的文件操作很密切的聯(lián)系 ? ? ? ? 下面主要講解兩個(gè)關(guān)鍵的類: ? ? ? ? 1、ServerSocket:給服務(wù)器使用的類,使用這個(gè)類來綁定端口號(hào) ? ? ? ? 2、Socket:即會(huì)給服務(wù)器使用,又會(huì)給客戶端使用; ????????

    2024年02月20日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包