A. 文件儲存格式有哪些
計算機中常用的信息存儲格式類型存儲格式特點及適用范圍文 本
.txt純文本文件,不攜帶字體、字型、顏色等文字修飾控制格式,一般文字處理軟體都能打開它
.doc使用Microsoft Word創建的格式化文件,用於一般的圖文排版
.html用超文本標記語言編寫生成的文件格式,用於網頁製作
.pdf攜帶型文檔格式,是由Adobe系統公司開發的一種文件格式,主要應用於電子文檔、出版等方面圖 象
.jpgJPEG文件格式是靜態圖像壓縮的國際標准,是應用廣泛的圖像壓縮格式,多用於網路和光碟讀物上
.gif支持透明背景圖象,文件很小,色彩限定在256色以內,主要應用在網路上
.bmpMicrosoft paint的固定格式,文件幾乎不壓縮,佔用磁碟空間大,普遍應用於Windows中
.pngPNG格式是目前保證最不失真的格式,它汲取了GIF及JPEG的特點,不支持動畫應用效果,是一種新興的網路圖像格式動 畫
.gif通過同時存儲若干幅圖像,進而形成連續的動畫,主要用於網頁
.swf應用Macromedia公司的Flash製作的動畫。具有縮放不失真、文件體積小等特點,它採用了流媒體技術,可以一邊下載一邊播放,目前被廣泛應用於網路上音 頻
.wav該格式記錄聲音的波形,聲音文件能夠和原聲基本一致,質量非常高,主要應用於需忠實記錄原聲的地方
.mp3一種壓縮儲存聲音的文件格式,是音頻壓縮的國際標准。特點是聲音失真小,文件小,目前網路上下載歌曲多為此格式
.midiMIDI是數字音樂/電子合成樂器的統一國際標准。MIDI文件存儲的是一系列指令,不是波形,因此它需要的磁碟空間非常小,目前主要用於音樂製作視 頻
B. android文件存儲方式,分類,利弊,什麼時候使用
第一種: 使用SharedPreferences存儲數據
適用范圍:保存少量的數據,且這些數據的格式非常簡單:字元串型、基本類型的值。比如應用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等
核心原理:保存基於XML文件存儲的key-value鍵值對數據,通常用來存儲一些簡單的配置信息。通過DDMS的File Explorer面板,展開文件瀏覽樹,很明顯SharedPreferences數據總是存儲在/data/data//shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過SharedPreferences.edit()獲取的內部介面Editor對象實現。 SharedPreferences本身是一 個介面,程序無法直接創建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中name表示要操作的xml文件名,第二個參數具體如下:
Context.MODE_PRIVATE: 指定該SharedPreferences數據只能被本應用程序讀、寫。
Context.MODE_WORLD_READABLE: 指定該SharedPreferences數據能被其他應用程序讀,但不能寫。
Context.MODE_WORLD_WRITEABLE: 指定該SharedPreferences數據能被其他應用程序讀,寫
SharedPreferences對象與SQLite資料庫相比,免去了創建資料庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數據類型,比如其無法進行條件查詢等。所以不論SharedPreferences的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他數據存儲方式。
第二種: 文件存儲數據
可以在設備本身的存儲設備或者外接的存儲設備中創建用於保存數據的文件。同樣在默認的狀態下,文件是不能在不同的程序間共享。
寫文件:調用Context.openFileOutput()方法根據指定的路徑和文件名來創建文件,這個方法會返回一個FileOutputStream對象。
讀取文件:調用Context.openFileInput()方法通過制定的路徑和文件名來返回一個標準的Java FileInputStream對象。
第三種:SQLite存儲數據
SQLite Database資料庫。Android對資料庫的支持很好,它本身集成了SQLite資料庫,每個應用都可以方便的使用它,或者更確切的說,Android完全依賴於SQLite資料庫,它所有的系統數據和用到的結構化數據都存儲在資料庫中。 它具有以下優點: a. 效率出眾,這是無可否認的 b. 十分適合存儲結構化數據 c. 方便在不同的Activity,甚至不同的應用之間傳遞數據。
第四種:ContentProvider
Android系統中能實現所有應用程序共享的一種數據存儲方式,由於數據通常在各應用間的是互相私密的,所以此存儲方式較少使用,但是其又是必不可少的一種存儲方式。例如音頻,視頻,圖片和通訊錄,一般都可以採用此種方式進行存儲。每個ContentProvider都會對外提供一個公共的URI(包裝成Uri對象),如果應用程序有數據需要共享時,就需要使用ContentProvider為這些數據定義一個URI,然後其他的應用程序就通過Content Provider傳入這個URI來對數據進行操作。
總結一下,文件適用於存儲一些簡單的文本數據或者二進制數據,SharedPreferences適用於存儲一些鍵值對,而資料庫則適用於那些復雜的關系型數據。
C. 數據存儲的三種方式
數據存儲的三種方式包括內存存儲器、外存儲器和高速緩存存儲器。
雙字寬存儲器是指存儲鬧畝器的數據線寬攜和度為兩個字(word)寬度,即可以同時傳輸兩個字辯彎盯節的數據。這種存儲器通常用於需要高速訪問和傳輸大量數據的應用中,比如視頻和圖像處理等領域。
D. 信息以文件形式存儲,文件用什麼分類分層存放
文件、塊和對象是三種以不同的方式來保存、整理和呈現數據的存儲格式。這些格式各有各的功能和限制。文件存儲會以文件和文件夾的層次結構來整理和呈現數據;塊存儲會將數據拆分到任意劃分且大小相同的卷中; 對象存儲會管理數據並將其鏈接至關聯的元數據。
塊存儲
塊存儲會將數據拆分成塊,並單獨存儲各個塊。每個數據塊都有一個唯一標識符,所以存儲系統能將較小的數據存放在最方便的位置。這意味著有些數據可以存儲在 Linux 環境中,有些則可以存儲在 Windows 單元中。
塊存儲通常會被配置為將數據與用戶環境分離,並會將數據分布到可以更好地為其提供服務的多個環境中。然後,當用戶請求數據時,底層存儲軟體會重新組裝來自這些環境的數據塊,並將它們呈現給用戶。它通常會部署在存儲區域網路 (SAN) 環境中,而且必須綁定到正常運行的伺服器。
由於塊存儲不依賴於單條數據路徑(和文件存儲一樣),因此可以實現快速檢索。每個塊都獨立存在,且可進行分區,因此可以通過不同的操作系統進行訪問,這使得用戶可以完全自由地配置數據。它是一種高效可靠的數據存儲方式,且易於使用和管理。它適用於要執行大型事務的企業和部署了大型資料庫的企業。這意味著,需要存儲的數據越多,就越適合使用塊存儲。
塊存儲有一些缺點。塊存儲的成本高昂。它處理元數據的能力有限。
操作對象:磁碟
存儲協議:SCSI、iSCSI、FC
介面命令:以SCSI為例,主要有Read/Write/Read Capacity
存儲架構:DAS、SAN
文件存儲
文件存儲也稱為文件級存儲或基於文件的存儲,數據會以單條信息的形式存儲在文件夾中。當需要訪問該數據時,計算機需要知道相應的查找路徑。存儲在文件中的數據會根據元數據來進行整理和檢索,這些元數據會告訴計算機文件所在的確切位置。
請試想一下塞滿文件櫃的儲藏室。每個文檔都會按照某種類型的邏輯層次結構來排放 ——按文件櫃、抽屜、文件夾,然後再是紙張。「分層存儲」這個術語就是這么來的,而這就是文件存儲。它是適用於直接和網路附加存儲(NAS)系統的最古老且運用最為廣泛的一種數據存儲系統;當訪問保存在個人計算機上的文件中的文檔,就是在使用文件存儲。文件存儲具有豐富多樣的功能,幾乎可以存儲任何內容。它非常適合用來存儲一系列復雜文件,並且有助於用戶快速導航。
問題是基於文件的存儲系統必須通過添置更多系統來進行橫向擴展,而不是通過增添更多容量來進行縱向擴展。
操作對象:文件和文件夾
存儲協議:NFS、SAMBA(SMB)、POSIX
介面命令:以NFS為例,文件相關的介面命令包括:READ/WRITE/CREATE/REMOVE/RENAME/LOOKUP/ACCESS 等;文件夾相關的介面命令包括:MKDIR/RMDIR/READDIR 等
存儲架構:NAS (【Linux】NAS存儲_Jacky_Feng的博客-CSDN博客)
對象存儲
對象存儲,也稱為基於對象的存儲,是一種扁平結構,其中的文件被拆分成多個部分並散布在多個硬體間。在對象存儲中,數據會被分解為稱為「對象」的離散單元,並保存在單個存儲庫中,而不是作為文件夾中的文件或伺服器上的塊來保存。
對象存儲卷會作為模塊化單元來工作:每個卷都是一個自包含式存儲庫,均含有數據、允許在分布式系統上找到對象的唯一標識符以及描述數據的元數據。元數據包括年齡、隱私/安全信息和訪問突發事件等詳細信息。為了檢索數據,存儲操作系統會使用元數據和標識符,這樣可以更好地分配負載,並允許管理員應用策略來執行更強大的搜索。
對象存儲需要一個簡單的 HTTP 應用編程介面 (API),以供大多數客戶端(各種語言)使用。對象存儲經濟高效:您只需為已用的內容付費。它可以輕松擴展,因而是公共雲存儲的理想之選。它是一個非常適用於靜態數據的存儲系統,其靈活性和扁平性意味著它可以通過擴展來存儲極大量的數據。對象具有足夠的信息供應用快速查找數據,並且擅長存儲非結構化數據。
它的缺點是無法修改對象 ,即必須一次性完整地寫入對象。對象存儲也不能很好地與傳統資料庫搭配使用,因為編寫對象是一個緩慢的過程,編寫應用以使用對象存儲 API 並不像使用文件存儲那麼簡單。
操作對象:對象(Object)
存儲協議:S3、Swift
介面命令:主要有PUT/GET/DELETE等
存儲架構:去中心化框架
對象存儲概念
對象存儲的數據組成
存儲桶(Bucket):存放對象的「容器」,且該「容器」無容量上限。對象以扁平化結構存放在存儲桶中,無文件夾和目錄的概念,用戶可選擇將對象存放到單個或多個存儲桶中。存儲桶的容量大小需要通過累加各個對象的大小得到。
每個存儲桶可容納任意數量的對象,但同一個主賬號下存儲桶數量最多僅能夠創建200個。(???)
對於存儲桶,應當以用途為粒度進行劃分,確保每個存儲桶的用途盡可能單一。例如,針對存放個人文件、發布靜態網站、存儲備份等用途都應該創建不同的存儲桶。此外,不同項目的數據、不同的網站,或者完全私人的文件與工作性質、需要分享的文件,也應該劃分不同的存儲桶。
對象存儲中也沒有「文件夾」的概念。對象存儲的管理平台為了模仿本地存儲的使用習慣,並與本地存儲系統互相兼容而模擬了目錄結構,背後的原理也僅僅是根據 / 這個字元對 key 進行分隔。為了表示空目錄,部分雲平台也提供「文件夾」對象,實際上只是 key 以 / 結尾的空存儲對象。
存儲桶所在地域(Regin)
指對象存儲的數據中心所在地域。對象存儲允許用戶在不同地域創建存儲桶,可以選擇在離業務最近的地域上創建存儲桶,以滿足低延遲、低成本以及合規性要求。
Bucket讀寫許可權
Bucket讀寫許可權包括:私有讀寫、公有讀私有寫和公有讀寫。
私有讀寫
只有該存儲桶的創建者及有授權的賬號才對該存儲桶中的對象有讀寫許可權,其他任何人對該存儲桶中的對象都沒有讀寫許可權。存儲桶訪問許可權默認為私有讀寫,推薦使用。
公有讀私有寫
任何人(包括匿名訪問者)都對該存儲桶中的對象有讀許可權,但只有存儲桶創建者及有授權的賬號才對該存儲桶中的對象有寫許可權。
公有讀寫
任何人(包括匿名訪問者)都對該存儲桶中的對象有讀許可權和寫許可權,不推薦使用。
對象(Object):對象存儲的基本單元,可理解為任何格式類型的數據,例如圖片、文檔和音視頻文件等。
每個對象都由對象鍵(Key)、對象值(Data)、和對象元數據(Metadata)組成。
對象鍵(Key):對象鍵是對象在存儲桶中的全局唯一標識(UID),可以理解為文件(名)路徑。
key用於檢索對象,文件對象的 key 與實際存儲路徑無關,伺服器和用戶不需要知道數據的物理地址,通過key就能找到對象。
對象值(Data):即存儲對象內容數據,可以理解為文件內容(Object Content)。
對象元數據(Metadata):是一組鍵值對,可以通俗的理解為文件的屬性,例如文件的修改時間、存儲類型等。(傳統的文件存儲,元數據屬於文件本身,和文件一起封裝存儲。而對象存儲,元數據獨立出來,並不在數據內部封裝。)
對象訪問地址
對象的訪問地址由存儲桶訪問地址和對象鍵組成,其結構形式為<存儲桶域名>/<對象鍵> 。
例如:上傳對象exampleobject.txt到廣州(華南)的存儲桶examplebucket-1250000000中,那麼exampleobject.txt的訪問地址是:examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/exampleobject.txt。其中examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com為存儲桶域名,exampleobject.txt為對象鍵。
目錄和文件夾
對象存儲中本身是沒有文件夾和目錄的概念的,對象存儲不會因為上傳對象project/a.txt而創建一個project文件夾。為了滿足用戶使用習慣,對象存儲在控制台、COS browser 等圖形化工具中模擬了「文件夾」或「目錄」的展示方式,具體實現是通過創建一個鍵值為project/,內容為空的對象,展示方式上模擬了傳統文件夾。
對象操作
用戶通過控制台、工具、API、SDK等多種方式管理對象。
對象存儲架構
對象存儲設備(OSD)
OSD由存儲介質、處理器、內存以及網路系統等組成,負責管理本地的對象,是對象存儲系統的核心。和塊設備相比,它們的差異在於提供的訪問介面。OSD的主要功能是數據存儲和安全訪問。
數據存儲:OSD管理對象數據,並將它們放置在標準的磁碟系統上,OSD不提供塊介面訪問方式,Client請求數據時用對象ID、偏移進行數據讀寫。
智能分布:OSD用其自身的CPU和內存優化數據分布,並支持數據的預取。由於OSD可以智能地支持對象的預取,從而可以優化磁碟的性能。
對象元數據管理:OSD管理存儲的對象元數據與傳統的inode元數據相似,通常包括對象的數據塊和對象的長度。而在傳統的NAS系統中,這些元數據是由文件伺服器維護的,對象存儲架構將系統中主要的元數據管理工作由OSD來完成,降低了Client的開銷。
元數據伺服器(MDS)
MDS控制Client與OSD對象的交互,為客戶端提供元數據,主要是文件的邏輯視圖(文件與目錄的組織關系、每個文件所對應的OSD等)。主要功能如下:
對象存儲訪問:MDS構造和管理描述每個文件分布的邏輯視圖,允許Client直接訪問對象。MDS為Client提供訪問該文件所含對象的能力,OSD在接收到每個請求時將先驗證該能力,然後才可以訪問。
文件和目錄訪問管理:MDS在存儲系統上構建一個文件結構,包括限額控制、目錄和文件的創建和刪除、訪問控制等。
Client Cache一致性:為了提高Client性能,在對象存儲系統設計時通常支持Client方的Cache。由於引入Client方的Cache,帶來了Cache一致性問題,MDS支持基於Client的文件Cache,當Cache的文件發生改變時,將通知Client刷新Cache,從而防止Cache不一致引發的問題。
客戶端(Client)
對象存儲系統提供給用戶的也是標準的POSIX文件訪問介面。介面具有和通用文件系統相同的訪問方式,同時為了提高性能,也具有對數據的Cache功能和文件的條帶功能。同時,文件系統必須維護不同客戶端上Cache的一致性,保證文件系統的數據一致。
文件系統讀訪問流程:
① 客戶端應用發出讀請求;
② 文件系統向元數據伺服器發送請求,獲取要讀取的數據所在的OSD;
③ 直接向每個OSD發送數據讀取請求;
④ OSD得到請求以後,判斷要讀取的Object,並根據此Object要求的認證方式,對客戶端進行認證,如果此客戶端得到授權,則將Object的數據返回給客戶端;
⑤ 文件系統收到OSD返回的數據以後,讀操作完成。
對象存儲的優缺點
(1)優點:
容量大,高擴展性
對象存儲的容量是EB級以上,對象存儲的所有業務、存儲節點採用分布式集群方式工作,各功能節點、集群都可以獨立擴容。從理論上來說,某個對象存儲系統或單個桶(bucket),並沒有總數據容量和對象數量的限制,即服務商就可以不停地往架構里增加資源,這個存儲空間就是無限的,也是支持彈性伸縮的。
高安全性,可靠性
對象存儲採用了分布式架構,對數據進行多設備冗餘存儲(至少三個以上節點),實現異地容災和資源隔離。數據訪問方面,所有的桶和對象都有訪問控制策略,所有連接都支持SSL加密,訪問用戶進行身份許可權鑒定。
高性能,支持海量用戶的並發訪問
(2)缺點:
不支持直接在存儲上修改
對象存儲系統保存的Object不支持修改(追加寫Object需要調用特定的介面,生成的Object也和正常上傳的Object類型上有差別)。用戶哪怕是僅僅需要修改一個位元組也需要重新上傳整個Object。因此,它不適合存儲需要頻繁擦寫的數據。
參考鏈接:
對象存儲,為什麼那麼火? - 知乎 (hu.com)
對象存儲 存儲桶概述 - 開發者指南 - 文檔中心 - 騰訊雲 (tencent.com)
基本概念 (aliyun.com)
文件存儲、塊存儲還是對象存儲? (redhat.com)
linux
駐馬店市民請關注領取補貼!
巨魔-抽手機公告
廣告
對比塊存儲、文件存儲、對象存儲
1242閱讀·0評論·3點贊
2019年2月27日
ShapeFile的文件格式設計
90閱讀·0評論·0點贊
2009年3月20日
應用ceph對象存儲(ceph-13.2.10)
72閱讀·0評論·0點贊
2022年11月26日
三種存儲類型比較-文件、塊、對象存儲
4.8W閱讀·0評論·13點贊
2016年7月26日
常見圖片存儲格式文件簡介
4534閱讀·0評論·0點贊
2020年5月4日
s3cmd常用命令
781閱讀·0評論·0點贊
2022年11月17日
駐馬店發布,你有一台5G手機待領取
00:23
巨摩互動
廣告
常見的存儲格式
1083閱讀·0評論·0點贊
2022年2月15日
文件、對象、塊區別
1399閱讀·0評論·0點贊
2020年7月13日
對象存儲、文件存儲、塊存儲的區別和聯系
7330閱讀·2評論·5點贊
2021年10月16日
數據分析中常見的存儲方式
1537閱讀·0評論·0點贊
2021年11月16日
三種存儲類型:塊存儲、文件存儲、對象存儲
1.5W閱讀·3評論·55點贊
2020年11月2日
如何設計二進制文件格式
1940閱讀·0評論·1點贊
2020年3月6日
BMP文件存儲格式
472閱讀·0評論·2點贊
2021年8月2日
hive 的存儲格式
1765閱讀·0評論·1點贊
2022年6月18日
數據存儲格式
446閱讀·0評論·0點贊
2022年12月21日
總結:對象存儲、塊存儲、文件存儲的區別
6606閱讀·0評論·3點贊
2022年4月9日
c語言中文件rw,什麼是「塊文件」?
386閱讀·0評論·0點贊
2021年5月23日
【存儲】塊存儲、文件存儲和對象存儲的區別?
350閱讀·0評論·0點贊
2022年7月22日
塊存儲、文件存儲與對象存儲的區別與應用場景
1846閱讀·1評論·0點贊
2022年6月5日
數據在內存中的存儲方式
272閱讀·0評論·0點贊
2022年8月21日
去首頁
看看更多熱門內容
E. 目前主要三種數據存儲方式
三種存儲方式:DAS、SAN、NAS
三種存儲類型:塊存儲、文件存儲、對象存儲
塊存儲和文件存儲是我們比較熟悉的兩種主流的存儲類型,而對象存儲(Object-based Storage)是一種新的網路存儲架構,基於對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱OSD。
本質是一樣的,底層都是塊存儲,只是在對外介面上表現不一致,分別應用於不同的業務場景。
分布式存儲的應用場景相對於其存儲介面,現在流行分為三種:
對象存儲: 也就是通常意義的鍵值存儲,其介面就是簡單的GET、PUT、DEL和其他擴展,如七牛、又拍、Swift、S3
塊存儲: 這種介面通常以QEMU Driver或者Kernel Mole的方式存在,這種介面需要實現Linux的Block Device的介面或者QEMU提供的Block Driver介面,如Sheepdog,AWS的EBS,青雲的雲硬碟和阿里雲的盤古系統,還有Ceph的RBD(RBD是Ceph面向塊存儲的介面)
文件存儲: 通常意義是支持POSIX介面,它跟傳統的文件系統如Ext4是一個類型的,但區別在於分布式存儲提供了並行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存儲的介面),但是有時候又會把GFS,HDFS這種非POSIX介面的類文件存儲介面歸入此類。
F. 根據文件中數據的存儲形式,一般將文件分為 和 。
文本文件
和
二進制文件。
例如
c
語言
fp1=fopen(file_name1,
"rb");
按2進制方法打開文件,用於讀。b
就是
binary文件
fp2=fopen(file_name2,
"r");
按文本文件方法打開文件,用於讀。默認
text
文件
fp3=fopen(file_name3,
"wb");
建文件,用2進制方法寫文件。
fp4=fopen(file_name4,
"w");
建文件,用文本方法寫文件。
文本文件由ascii碼寫成,可讀。對比起來,
二進制文件
看起來像亂碼。