應用程式設計/檔案
什麼是檔案?
當您使用計算機建立東西時,這些東西儲存在稱為檔案的“資訊單元”中。 計算機檔案可以是您用文字處理程式編寫的文件。 計算機檔案也可以是來自數碼相機的圖形影像,或您用數碼畫筆建立的影像,音樂片段,影片,或幾乎任何東西。 無論是什麼,計算機都會將這些資訊儲存為檔案。[1]
檔案大小
由於計算機上的資料儲存仍然有限,因此檔案大小仍然很重要。 檔案大小始終以位元組為單位。 一個位元組是 8 位的序列(記住,一位是數字資訊的最小單位,000 或 111)。 一個位元組足以表示 256 個數字,因為 28 = 2562。 這也意味著一個位元組足以表示 ASCII 編碼標準中的單個字母。 更大的檔案以更大的位元組大小表示。 術語包括千位元組(1000 位元組)、兆位元組(10002 位元組)、吉位元組(10003 位元組)、太位元組(10004 位元組)、拍位元組(10005 位元組)。[2]
檔案型別
計算機將所有檔案儲存為二進位制資料,即 111 和 000 的長字串。 但是,檔案代表所有不同型別的資料,例如影像、影片、文件、文字檔案和電子表格。 甚至應用程式也是檔案。 每個檔案都有一個型別/種類/格式,這通常反映在其副檔名中。[3] Windows(以及大多數其他作業系統)中的每個單獨檔案也都有一個檔案屬性,它為特定檔案設定一個條件。 例如,您無法向已開啟只讀屬性的檔案寫入新資訊。 檔名只是使用者或程式為檔案命名的名稱,以幫助識別它是什麼。 一個影像檔案可能名為 kids-lake-2017.jpg。 檔名本身不會影響檔案的內容,因此即使影片檔名為 image.mp4,也不意味著它突然變成了圖片檔案。 任何作業系統中的檔案都儲存在硬碟、光碟機和其他儲存裝置上。 檔案的特定儲存和組織方式稱為檔案系統,它從根目錄開始,然後繼續到無數子目錄或資料夾。[4]
檔案操作
包括:[5]
- 建立一個新檔案
- 更改檔案的訪問許可權和屬性
- 開啟檔案,使檔案內容可供程式使用
- 從檔案讀取資料
- 將資料寫入檔案
- 刪除檔案
- 關閉檔案,終止它與程式之間的關聯
- 截斷檔案,將其縮短為檔案系統中指定的尺寸,而無需重寫任何內容
- 更新現有檔案的內容
- 搜尋檔案中的資料
在計算中,檔案系統或檔案系統(通常縮寫為fs)控制資料如何儲存和檢索。 如果沒有檔案系統,放置在儲存介質中的資料將是一個龐大的資料體,無法分辨一段資料在哪裡結束,下一段資料從哪裡開始。 透過將資料分成幾部分並給每個部分一個名稱,可以輕鬆地隔離和識別資料。 從紙質資料管理系統的方式命名而來,每組資料稱為“檔案”。 用於管理資料組及其名稱的結構和邏輯規則稱為“檔案系統”。[6]
檔案系統的功能與書籍目錄非常相似。 它是計算機用於引用儲存裝置上資料位置的一種方式。 如果一本書可能引用一個章節和一組頁面,那麼檔案系統對目錄和資料夾做同樣的事情。 檔名由一個字元序列組成,後面跟著擴充套件型別,例如myfile.txt。 如果我們繼續用書籍來類比,檔名就是章節的標題,目錄就是章節號或頁面範圍。 目錄可以結構化,使它們是平面的/線性的或分層的; 意味著它們可以是一個長檔案列表,也可以儲存在許多不同的資料夾和子資料夾中。
常見的檔案系統包括 Windows 平臺上的 FAT32 和 NTFS,以及 macOS 上的 APFS。
文字檔案(有時拼寫為textfile;舊的替代名稱是flatfile)是一種計算機檔案,其結構為電子文字的線序列。 文字檔案作為資料儲存在計算機檔案系統中。 在 CP/M 和 MS-DOS 等作業系統中,作業系統不跟蹤檔案大小(以位元組為單位),文字檔案的結尾透過在文字檔案的最後一行之後新增一個或多個特殊字元(稱為檔案結尾標記)來表示。 在現代作業系統(如 Microsoft Windows 和類 Unix 系統)中,文字檔案不包含任何特殊的 EOF 字元,因為這些作業系統上的檔案系統會跟蹤檔案大小(以位元組為單位)。 對大多數文字檔案來說,需要有行結束符,這取決於作業系統以幾種不同的方式完成。 一些具有面向記錄的檔案系統的作業系統可能不使用換行符,並且主要將文字檔案儲存為固定或可變長度的記錄。
二進位制檔案是計算機檔案中不是文字檔案的。術語“二進位制檔案”通常用作“非文字檔案”的含義。許多二進位制檔案格式包含可以解釋為文字的部分;例如,一些包含格式化文字的計算機文件檔案,例如較舊的 Microsoft Word 文件檔案,包含文件的文字,但也包含以二進位制形式的格式資訊。
二進位制檔案包含只有某些應用程式或處理器才能理解的格式資訊。雖然人類可以讀取文字檔案,但二進位制檔案必須在相應的軟體或處理器上執行,人類才能讀取它們。例如,只有 Microsoft Word 和某些其他文字處理程式才能解釋 Word 文件中的格式資訊。可執行檔案、編譯後的程式、SAS 和 SPSS 系統檔案、電子表格、壓縮檔案和圖形(影像)檔案都是二進位制檔案的示例。[9]
StreamReader 和 StreamWriter 工具在 C# 中用於讀寫檔案。宣告“using System.IO;“ 必須包含在程式的標題中才能訪問這些類,並且 StreamReader 或 StreamWriter 物件使用關鍵字“new”建立。例如,以下程式碼將使用名為 sr 的 StreamReader 物件來讀取和顯示名為“filename.txt”的檔案
using System;
using System.IO;
public class MyProgram
{
public static void Main(string[] Args)
{
StreamReader sr = new StreamReader(“filename.txt”);
/*the StreamReader object takes different commands to read or write to the file.*/
while(line = sr.ReadLine() != null)
Console.WriteLine(line);
}
}
可以使用以下程式碼在 Python 中執行相同的程式。
file = open("filename.txt")
text = file.readlines()
for line in text:
print(line)
file.close()
絕對路徑 - 包含根元素和定位檔案所需的完整目錄列表。[10]
二進位制檔案 - 計算機檔案中不是文字檔案的。術語“二進位制檔案”通常用作“非文字檔案”的含義。[11]
目錄結構 - 作業系統檔案系統及其檔案向用戶顯示的方式。[12]
目錄 - 計算機上儲存檔案的地址。目錄在分層檔案系統中找到,例如 Linux、MS-DOS、OS/2 和 Unix。[13]
檔案系統 - 或者稱為檔案管理或 FS,檔案系統是組織和檢索儲存介質中的檔案的一種方法。[14]
檔案實用程式 - 允許使用者建立、列出、複製、移動和刪除檔案,以及更改元資料。[15]
完全限定檔名 - 透過包含檔案的路徑、名稱和副檔名來唯一標識儲存在計算機上的檔案的一個字串。[12]
元資料 - 通常與檔案系統中的每個檔案關聯的資訊。檔案系統可能會儲存檔案的建立時間、上次訪問時間等。[15]
父和子 - 父目錄包含“子”檔案或子目錄。子是包含在父目錄中的檔案或子目錄。[16]
路徑 - 計算機、檔案、裝置或網頁所在位置的完整地址或名稱。[17]
相對路徑 - 需要與其他路徑組合才能訪問檔案。[10]
根 - 檔案系統層次結構中的最高級別目錄,在類似 UNIX 的作業系統中找到。[18]
文字檔案 - 作為電子文字行序列結構的檔案,它作為資料儲存在計算機檔案系統中。[19]
- ↑ https://www.dummies.com/computers/computer-networking/networking-components/understanding-what-a-computer-file-is/
- ↑ https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:computers/xcae6f4a7ff015e7d:computer-files/a/file-storage-sizes-and-types
- ↑ https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:computers/xcae6f4a7ff015e7d:computer-files/a/file-types-kinds-extensions
- ↑ https://www.lifewire.com/what-is-a-file-2625878
- ↑ 計算機檔案
- ↑ https://en.wikipedia.org/wiki/File_system
- ↑ https://en.wikipedia.org/wiki/Text_file
- ↑ https://en.wikipedia.org/wiki/Binary_file
- ↑ https://kb.iu.edu/d/afrw
- ↑ a b 甲骨文
- ↑ w:二進位制檔案
- ↑ a b w:目錄結構
- ↑ 計算機希望:目錄
- ↑ 計算機希望:檔案系統
- ↑ a b w:檔案系統
- ↑ w:目錄(計算)
- ↑ 計算機希望:路徑
- ↑ w:根目錄
- ↑ w:文字檔案