java中file,java中FileWriter

本文目錄一覽:

為什麼Java中的file類無法只能操作不能讀寫?

說下我的理解,通常意思下,我們理解的文件,其實包含兩部分,一部分是指保存在磁盤上的文件的具體內容,另一部分指的是保存在操作系統文件系統裡面的文件名稱,目錄那些東西。(這裡你可以去搜索下 linux inode 理解相關的概念,這裡我也不是很熟)。

文件系統是操作系統封裝磁盤操作產生的一層東西,我們只能通過操作系統提供的文件系統的API去操作磁盤。(這裡可以去學習下操作系統相關的知識)。

java中的FIle指的是 文件系統裡面的一個file,這個對象,只包含文件的一些元數據,文件大小,位置,創建時間,修改時間,創建人,權限等等一系列的文件元數據,它是不包含文件具體的內容的。所以你只能操作它,不能讀寫。所謂的操作,也就是對文件系統 那一棵文件目錄樹 進行增刪改查的操作。

file這個對象里,應該包含這個文件在磁盤上的具體位置,通過這個位置,你就可以通過文件系統的API進行文件的讀寫了。(這裡,我的理解是這樣,具體是不是這樣,我也不確定,可以去搜索 posix標準 查看通用的一些文件操作的API 來驗證下)。

而對文件具體內容的操作,你必須通過IO操作去實現。這裡過程大概如下,涉及操作系統跟驅動相關的過程,去百度吧,我也不是很熟。

java中 File file=new File(“.”)是什麼意思?

1僅加一個點,表示當前目錄。

2補充幾點:Java中的File類的作用就是一個文件或目錄的抽象表示,當然這裡是表示目錄的,可以進一步用exists()和isDirectory()方法判斷。

3.舉例代碼:

public class TestDemo {

public static void main(String[] args) throws Exception {

File file = new File(“.”);

// 參數”.”點表示當前路徑

// new File(“.”) 表示用當前路徑 生成一個File實例,!!!並不是表達創建一個 . 文件

String path = file.getCanonicalPath();

System.out.println(path);

//輸出file代表的路徑

File file2 = new File(“bcde.txt”);

boolean b = file2.createNewFile();//這才是創建一個名為bcde.txt的文件 windows不支持文件名為一個點”.”

if(b){

System.out.println(“在當前路徑”+path+”下創建文件bcde.txt成功”);

}else{

//如bcde.txt已經存在,再次創建就會失敗,

System.out.println(“在當前路徑”+path+”下創建文件bcde.txt失敗”);

}

}

}

java 種的File類是用來做什麼的?有什麼用處?(追加40分)

File類是用來操作文件及目錄(文件夾)的,你可以拋開別的,只是想想,

能對文件及目錄幹什麼?無非就是創建文件或目錄,刪除、修改文件的內容等簡單操作。再就是通過遍歷文件做某些操作。File類就是干這些的。你再依據以下小程序理解下File類的操作就覺得簡單了。

File

f

=

new

File(“d://123.txt”);//你可以把它理解為告訴File類要操作的路徑,但是還沒讓它操作。

f.createNewFile()

;//創建文件,如果創建成功返回true

f.delete()

;//刪除文件,如果刪除成功返回true

。。。

java中File類常用的方法有哪些?

給你一個中文的吧。你不想看英文的API;File類是直接繼承Object類的。Object類的方法我就不不寫了:\x0d\x0a字段摘要\x0d\x0astaticStringpathSeparator\x0d\x0a與系統有關的路徑分隔符,為了方便,它被表示為一個字符串。\x0d\x0astaticcharpathSeparatorChar\x0d\x0a與系統有關的路徑分隔符。\x0d\x0astaticStringseparator\x0d\x0a與系統有關的默認名稱分隔符,為了方便,它被表示為一個字符串。\x0d\x0astaticcharseparatorChar\x0d\x0a與系統有關的默認名稱分隔符。\x0d\x0a構造方法摘要\x0d\x0aFile(Fileparent,Stringchild)\x0d\x0a根據parent抽象路徑名和child路徑名字符串創建一個新File實例。\x0d\x0aFile(Stringpathname)\x0d\x0a通過將給定路徑名字符串轉換為抽象路徑名來創建一個新File實例。\x0d\x0aFile(Stringparent,Stringchild)\x0d\x0a根據parent路徑名字符串和child路徑名字符串創建一個新File實例。\x0d\x0aFile(URIuri)\x0d\x0a通過將給定的file:URI轉換為一個抽象路徑名來創建一個新的File實例。\x0d\x0a方法摘要\x0d\x0abooleancanExecute()\x0d\x0a測試應用程序是否可以執行此抽象路徑名表示的文件。\x0d\x0abooleancanRead()\x0d\x0a測試應用程序是否可以讀取此抽象路徑名表示的文件。\x0d\x0abooleancanWrite()\x0d\x0a測試應用程序是否可以修改此抽象路徑名表示的文件。\x0d\x0aintcompareTo(Filepathname)\x0d\x0a按字母順序比較兩個抽象路徑名。\x0d\x0abooleancreateNewFile()\x0d\x0a當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。\x0d\x0astaticFilecreateTempFile(Stringprefix,Stringsuffix)\x0d\x0a在默認臨時文件目錄中創建一個空文件,使用給定前綴和後綴生成其名稱。\x0d\x0astaticFilecreateTempFile(Stringprefix,Stringsuffix,Filedirectory)\x0d\x0a在指定目錄中創建一個新的空文件,使用給定的前綴和後綴字符串生成其名稱。\x0d\x0abooleandelete()\x0d\x0a刪除此抽象路徑名表示的文件或目錄。\x0d\x0avoiddeleteOnExit()\x0d\x0a在虛擬機終止時,請求刪除此抽象路徑名表示的文件或目錄。\x0d\x0abooleanequals(Objectobj)\x0d\x0a測試此抽象路徑名與給定對象是否相等。\x0d\x0abooleanexists()\x0d\x0a測試此抽象路徑名表示的文件或目錄是否存在。\x0d\x0aFilegetAbsoluteFile()\x0d\x0a返回此抽象路徑名的絕對路徑名形式。\x0d\x0aStringgetAbsolutePath()\x0d\x0a返回此抽象路徑名的絕對路徑名字符串。\x0d\x0aFilegetCanonicalFile()\x0d\x0a返回此抽象路徑名的規範形式。\x0d\x0aStringgetCanonicalPath()\x0d\x0a返回此抽象路徑名的規範路徑名字符串。\x0d\x0alonggetFreeSpace()\x0d\x0a返回此抽象路徑名指定的分區中未分配的字節數。\x0d\x0aStringgetName()\x0d\x0a返回由此抽象路徑名表示的文件或目錄的名稱。\x0d\x0aStringgetParent()\x0d\x0a返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回null。\x0d\x0aFilegetParentFile()\x0d\x0a返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒有指定父目錄,則返回null。\x0d\x0aStringgetPath()\x0d\x0a將此抽象路徑名轉換為一個路徑名字符串。\x0d\x0alonggetTotalSpace()\x0d\x0a返回此抽象路徑名指定的分區大小。\x0d\x0alonggetUsableSpace()\x0d\x0a返回此抽象路徑名指定的分區上可用於此虛擬機的字節數。\x0d\x0ainthashCode()\x0d\x0a計算此抽象路徑名的哈希碼。\x0d\x0abooleanisAbsolute()\x0d\x0a測試此抽象路徑名是否為絕對路徑名。\x0d\x0abooleanisDirectory()\x0d\x0a測試此抽象路徑名表示的文件是否是一個目錄。\x0d\x0abooleanisFile()\x0d\x0a測試此抽象路徑名表示的文件是否是一個標準文件。\x0d\x0abooleanisHidden()\x0d\x0a測試此抽象路徑名指定的文件是否是一個隱藏文件。\x0d\x0alonglastModified()\x0d\x0a返回此抽象路徑名表示的文件最後一次被修改的時間。\x0d\x0alonglength()\x0d\x0a返回由此抽象路徑名表示的文件的長度。\x0d\x0aString[]list()\x0d\x0a返回一個字符串數組,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。\x0d\x0aString[]list(FilenameFilterfilter)\x0d\x0a返回一個字符串數組,這些字符串指定此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。\x0d\x0aFile[]listFiles()\x0d\x0a返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件。\x0d\x0aFile[]listFiles(FileFilterfilter)\x0d\x0a返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。\x0d\x0aFile[]listFiles(FilenameFilterfilter)\x0d\x0a返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。\x0d\x0astaticFile[]listRoots()\x0d\x0a列出可用的文件系統根。\x0d\x0abooleanmkdir()\x0d\x0a創建此抽象路徑名指定的目錄。\x0d\x0abooleanmkdirs()\x0d\x0a創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。\x0d\x0abooleanrenameTo(Filedest)\x0d\x0a重新命名此抽象路徑名表示的文件。\x0d\x0abooleansetExecutable(booleanexecutable)\x0d\x0a設置此抽象路徑名所有者執行權限的一個便捷方法。\x0d\x0abooleansetExecutable(booleanexecutable,booleanownerOnly)\x0d\x0a設置此抽象路徑名的所有者或所有用戶的執行權限。\x0d\x0abooleansetLastModified(longtime)\x0d\x0a設置此抽象路徑名指定的文件或目錄的最後一次修改時間。\x0d\x0abooleansetReadable(booleanreadable)\x0d\x0a設置此抽象路徑名所有者讀權限的一個便捷方法。\x0d\x0abooleansetReadable(booleanreadable,booleanownerOnly)\x0d\x0a設置此抽象路徑名的所有者或所有用戶的讀權限。\x0d\x0abooleansetReadOnly()\x0d\x0a標記此抽象路徑名指定的文件或目錄,從而只能對其進行讀操作。\x0d\x0abooleansetWritable(booleanwritable)\x0d\x0a設置此抽象路徑名所有者寫權限的一個便捷方法。\x0d\x0abooleansetWritable(booleanwritable,booleanownerOnly)\x0d\x0a設置此抽象路徑名的所有者或所有用戶的寫權限。\x0d\x0aStringtoString()\x0d\x0a返回此抽象路徑名的路徑名字符串。\x0d\x0aURItoURI()\x0d\x0a構造一個表示此抽象路徑名的file:URI。\x0d\x0aURLtoURL()\x0d\x0a已過時。此方法不會自動轉義URL中的非法字符。建議新的代碼使用以下方式將抽象路徑名轉換為URL:首先通過toURI方法將其轉換為URI,然後通過URI.toURL方法將URI裝換為URL。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248864.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:30
下一篇 2024-12-12 13:30

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論