UWP入門(十) 建立 寫入和讀取檔案

2021-07-29 10:32:13 字數 3643 閱讀 3272

核心的 api github**

使用 storagefile 物件讀取和寫入檔案

// create sample file; replace if exists.

windows.storage

.storagefolder storagefolder = windows.storage

.current

.localfolder

;windows.storage

.storagefile samplefile = await storagefolder.createfileasync("sample.txt",windows.storage

.creationcollisionoption

.replaceexisting);

debug.write(""+storagefolder.path);

建立路徑為:

c:\users

\local

\packages

\e0e11ee4-de7a-4679-a860-651e63d24a4a_nj65d38msn17e\localstate

下面介紹了如何使用storagefile 類在磁碟上寫入可寫檔案。 每種寫入檔案(除非你在建立後立即寫入檔案)的方法的常見第一步是使用 storagefolder.getfileasync 獲取檔案

//1.獲取檔案

.localfolder

;storagefile samplefile = await storagefolder.getfileasync("sample.txt");

通過呼叫fileio 類的 writetextasync 方法,將文字寫入檔案

await fileio.writetextasync(samplefile, "swift as a shadow");
//1 首先,呼叫 convertstringtobinary 以獲取你想要寫入檔案的位元組(基於隨機字串)的緩衝區

var buffer = windows.security

.cryptography

.cryptographicbuffer

.convertstringtobinary(

"what fools these mortals be", windows.security

.cryptography

.binarystringencoding

.utf8);

//2然後,通過呼叫 fileio 類的 writebufferasync 方法,將位元組從你的緩衝區寫入檔案

await windows.storage

.fileio

.writebufferasync(samplefile, buffer);

//使用流將文字寫入檔案(4 步)

//1.首先,呼叫 storagefile.openasync 方法開啟檔案。 開啟操作完成後,它將返回檔案的內容流。

var stream = await samplefile.openasync(fileaccessmode.readwrite);

//2.接下來,通過從 stream 呼叫 getoutputstreamat 方法獲取輸出流。 將其放到 using 語句中以管理輸出流的生存期

using (var outputstream = stream.getoutputstreamat(0))

stream.dispose(); // or use the stream variable (see previous code snippet) with a using statement as well.

//3.現在,將此**新增到現有的 using 語句中,以通過建立乙個新的 datawriter 物件和呼叫 datawriter.writestring 方法寫入輸出流

using (var datawriter = new windows.storage.streams.datawriter(outputstream))

//4.最後,新增此**(在內部 using 語句中)以使用 storeasync 將文字儲存到你的檔案並使用 flushasync 關閉該流

await datawriter.storeasync();

await outputstream.flushasync();

下面介紹了如何使用 storagefile 類在磁碟上從檔案進行讀取。 每種從檔案讀取的方法的常見第一步是使用 storagefolder.getfileasync 獲取檔案。

.localfolder

;storagefile samplefile = await storagefolder.getfileasync("sample.txt");

通過呼叫 fileio 類的 readtextasync 方法,從檔案讀取文字

string text = await windows.storage

.fileio

.readtextasync(samplefile);

首先,呼叫fileio類的readbufferasync方法

var buffer = await windows.storage

.fileio

.readbufferasync(samplefile);

然後,使用 datareader 物件先讀取緩衝區的長度,然後讀取其內容

using (var datareader = streams.datareader

.frombuffer(buffer))

通過呼叫 storagefile.openasync 方法,為你的檔案開啟流。 操作完成後,它將返回檔案的內容流

var stream = await samplefile.openasync(windows.storage

.fileaccessmode

.readwrite);

獲取稍後要使用的流的大小

ulong size =stream.size;
通過呼叫 getinputstreamat 方法獲取輸入流。 將其放到 using 語句中以管理流的生存期。 呼叫 getinputstreamat 時指定 0,以將位置設定在流的開頭

using (var inputstream = stream.getinputstreamat(0))

最後,將此**新增到現有的 using 語句中以在流上獲取 datareader 物件,然後通過呼叫 datareader.loadasync 和 datareader.readstring 讀取文字

using (var datareader = new windows.storage.streams.datareader(inputstream))

檔案讀取和寫入

open 返回乙個檔案物件,open filename,mode f open workfile w 第乙個引數是包含檔名的字串,第二個引數可以是包含一些字元的字串 r 僅讀取檔案,w 僅寫入檔案,a 開啟檔案以進行新增的模式 r 開啟檔案進行讀取和寫入,模式引數是可選的。r 如果省略,將被假定。b...

檔案寫入和讀取

最近在提高自己程式設計能力,拿一些現實的小指令碼練下。該指令碼為python語言,主要涉及模組os。功能 將控制台輸入文字逐行儲存,和讀取。輸入逐行儲存 import os filename input please enter file name file open filename,w whil...

UWP入門(十) 獲取檔案屬性

重要的 api 很多頂級檔案屬性都可以作為 storagefile 類的成員進行訪問。這些屬性包括檔案屬性 內容型別 建立日期 顯示名稱和檔案型別等 注意 請記住,要宣告 pictureslibrary 功能 enumerate all files in the pictures library.v...