Dart的 IO 庫(kù)包含了文件讀寫的相關(guān)類,它屬于 Dart 語(yǔ)法標(biāo)準(zhǔn)的一部分,所以通過(guò) Dart IO 庫(kù),無(wú)論是 Dart VM 下的腳本還是 Flutter,都是通過(guò) Dart IO 庫(kù)來(lái)操作文件的,不過(guò)和 Dart VM 相比,F(xiàn)lutter 有一個(gè)重要差異是文件系統(tǒng)路徑不同,這是因?yàn)镈art VM 是運(yùn)行在 PC 或服務(wù)器操作系統(tǒng)下,而 Flutter 是運(yùn)行在移動(dòng)操作系統(tǒng)中,他們的文件系統(tǒng)會(huì)有一些差異。
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計(jì),勉縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:勉縣等地區(qū)。勉縣做網(wǎng)站價(jià)格咨詢:028-86922220
Android 和 iOS 的應(yīng)用存儲(chǔ)目錄不同, PathProvider 插件提供了一種平臺(tái)透明的方式來(lái)訪問(wèn)設(shè)備文件系統(tǒng)上的常用位置。該類當(dāng)前支持訪問(wèn)兩個(gè)文件系統(tǒng)位置:
File代表一個(gè)整體的文件,他有三個(gè)構(gòu)造函數(shù),分別是:
文件讀取本身有兩種形式,一種是文本,一種是二進(jìn)制。
2.2.1 讀取文本內(nèi)容
如果是文本文件,F(xiàn)ile提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,讀取文本內(nèi)容
readAsString 一次性讀取所有文本
readAsLines 一行行的讀取文本
結(jié)果返回的是一個(gè)List,list中表示文件每行的內(nèi)容
readAsStringSync、readAsLinesSync同步讀取文本
2.2.2 讀取二進(jìn)制內(nèi)容
如果文件是二進(jìn)制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:
dart中表示二進(jìn)制有一個(gè)專門的類型叫做Uint8List,他實(shí)際上表示的是一個(gè)int的List。
上面提到的讀取方式,都是一次性讀取整個(gè)文件,缺點(diǎn)就是如果文件太大的話,可能造成內(nèi)存空間的壓力。
所以File為我們提供了另外一種讀取文件的方法,流的形式來(lái)讀取文件.
示例
dart提供了open和openSync兩個(gè)方法來(lái)進(jìn)行隨機(jī)文件讀寫:
寫入和文件讀取一樣,可以一次性寫入或者獲得一個(gè)寫入句柄,然后再寫入。
一次性寫入的方法有四種,分別對(duì)應(yīng)字符串和二進(jìn)制
句柄形式可以調(diào)用openWrite方法,返回一個(gè)IOSink對(duì)象,然后通過(guò)這個(gè)對(duì)象進(jìn)行寫入:
默認(rèn)情況下寫入是會(huì)覆蓋整個(gè)文件的,但是可以通過(guò)下面的方式來(lái)更改寫入模式:
雖然dart中所有的異常都是運(yùn)行時(shí)異常,但是和java一樣,要想手動(dòng)處理文件讀寫中的異常,則可以使用try,catch:
我們還是以計(jì)數(shù)器為例,實(shí)現(xiàn)在應(yīng)用退出重啟后可以恢復(fù)點(diǎn)擊次數(shù)。 這里,我們使用文件來(lái)保存數(shù)據(jù):
1.引入PathProvider插件;在pubspec.yaml文件中添加如下聲明:
執(zhí)行 flutter pub get
2.實(shí)現(xiàn)如下
參考:
DecoratedBox可以在其子組件繪制前(或后)繪制一些裝飾(Decoration),如背景、邊框、漸變等。
DecoratedBox定義如下:
我們通常會(huì)直接使用BoxDecoration類,它是一個(gè)Decoration的子類,實(shí)現(xiàn)了常用的裝飾元素的繪制。
圓形頭像
圓角頭像
泰戈?duì)柕摹讹w鳥(niǎo)集》
中英對(duì)照
<<飛 鳥(niǎo) 集>>
泰戈?duì)?/p>
1
夏天的飛鳥(niǎo),飛到我的窗前唱歌,又飛去了。
秋天的黃葉,它們沒(méi)有什么可唱,只嘆息一聲,飛落在那里?!?/p>
Stray
birds
of
summer
come
to
my
window
to
sing
and
fly
away.
And
yellow
leaves
of
autumn,
which
have
no
songs,
flutter
and
fall
there
with
a
sign.
2
世界上的一隊(duì)小小的漂泊者呀,請(qǐng)留下你們的足印在我的文字里?!?/p>
O
Troupe
of
little
vagrants
of
the
world,
leave
your
footprints
in
my
words.
3
世界對(duì)著它的愛(ài)人,把它浩翰的面具揭下了。
它變小了,小如一首歌,小如一回永恒的接吻?!?/p>
The
world
puts
off
its
mask
of
vastness
to
its
lover.
It
becomes
small
as
one
song,
as
one
kiss
of
the
eternal.
4
是大地的淚點(diǎn),使她的微笑保持著青春不謝。
It
is
the
tears
of
the
earth
that
keep
here
smiles
in
bloom.
5
無(wú)垠的沙漠熱烈追求一葉綠草的愛(ài),她搖搖頭笑著飛開(kāi)了。
The
mighty
desert
is
burning
for
the
love
of
a
bladeof
grass
who
shakes
her
head
and
laughs
and
flies
away.
6
如果你因失去了太陽(yáng)而流淚,那么你也將失去群星了。
If
you
shed
tears
when
you
miss
the
sun,
you
also
miss
the
stars.
7
跳舞著的流水呀,在你途中的泥沙,要求你的歌聲,你的流動(dòng)呢。你肯挾
瘸足的泥沙而俱下么?
The
sands
in
your
way
beg
for
your
song
and
your
movement,
dancing
water.
Will
you
carry
the
burden
of
their
lameness?
8
她的熱切的臉,如夜雨似的,攪擾著我的夢(mèng)魂?!?/p>
Her
wishful
face
haunts
my
dreams
like
the
rain
at
night.
9
有一次,我們夢(mèng)見(jiàn)大家都是不相識(shí)的?!?/p>
我們醒了,卻知道我們?cè)窍嘤H相愛(ài)的。
Once
we
dreamt
that
we
were
strangers.
We
wake
up
to
find
that
we
were
dear
to
each
other.
10
憂思在我的心里平靜下去,正如暮色降臨在寂靜的山林中。
Sorrow
is
hushed
into
peace
in
my
heart
like
the
evening
among
the
silent
trees.
對(duì)于每一個(gè)開(kāi)發(fā)者而言,開(kāi)發(fā)工具就相當(dāng)于他們的武器,選擇一個(gè)合適的工具能夠幫助我們?cè)诠ぷ鲿r(shí)事半功倍,在互聯(lián)網(wǎng)逐漸發(fā)展成熟的今天,越來(lái)越多的開(kāi)發(fā)工具供我們選擇,但其中總有一些更好用的,如何選擇成為了一大難題。
從而頒布了2021年StackShare第八屆頂級(jí)工具獎(jiǎng),快來(lái)看看有沒(méi)有你青睞的開(kāi)發(fā)工具吧。
年度最佳新興工具
1.FastAPI
FastAPI 是一個(gè)使用 Python3.6+ 構(gòu)建 Web API 的高性能框架。根據(jù)框架創(chuàng)建者的說(shuō)法,F(xiàn)astAPI 性能與 NodeJS 或 Golang 相當(dāng)。
2.GitHub Copilot
作為一款 AI 結(jié)對(duì)編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補(bǔ)全與建議功能,但在實(shí)際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開(kāi)發(fā)的 Codex AI 系統(tǒng)。
3.FiglamFigma
Figma 是一個(gè) 基于瀏覽器 的協(xié)作式 UI 設(shè)計(jì)工具,從推出至今越來(lái)越受到 UI 設(shè)計(jì)師的青睞,也有很多的設(shè)計(jì)團(tuán)隊(duì)投入了Figma 的懷抱,
4.Logtail
Logtail是日志服務(wù)提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云廠商等服務(wù)器上的日志。本文介紹Logtail的功能、優(yōu)勢(shì)、使用限制及配置流程等信息。
5.Coder
開(kāi)發(fā)人員工作區(qū)平臺(tái)·
6.Charts.csscss
Charts.css 是用于數(shù)據(jù)可視化的開(kāi)源 CSS 框架,幫助用戶理解數(shù)據(jù),幫助開(kāi)發(fā)人員使用簡(jiǎn)單的 CSS 類將數(shù)據(jù)轉(zhuǎn)換為漂亮的圖表?!?/p>
7.Counter
簡(jiǎn)單并且免費(fèi)的網(wǎng)絡(luò)分析·
8.React Query
React Query是一個(gè)庫(kù),可為任何類型的異步數(shù)據(jù)提供ReactJS狀態(tài)管理功能。根據(jù)他們的官方文件,·
9.vscode.dev
將VS Code引入瀏覽器,構(gòu)建一個(gè)可以在瀏覽器中完全無(wú)服務(wù)器運(yùn)行的開(kāi)發(fā)工具。
10.BookStack
BookStack 是一個(gè)開(kāi)源的、基于 Laravel + Vue.js 構(gòu)建的知識(shí)管理和服務(wù)平臺(tái)。具有簡(jiǎn)單但功能強(qiáng)大的所見(jiàn)即所得編輯器,允許團(tuán)隊(duì)輕松創(chuàng)建詳細(xì)且有用的文檔?!?/p>
11.ThunderClient
Thunder Client 為我們提供了一款輕量級(jí)、易用、整潔、簡(jiǎn)單的 Rest API 客戶端擴(kuò)展。·我們可以利用 Thunder Client 在編輯器內(nèi)快速測(cè)試代碼庫(kù)的 API 端點(diǎn),從而最大限度地減少頁(yè)面的切換。它可以替代 Postman,作為常用的無(wú)腳本測(cè)試工具。
12.Quod AI
Quod AI Code Search是一個(gè)由人工智能驅(qū)動(dòng)的Chrome擴(kuò)展,可以自動(dòng)從Git存儲(chǔ)庫(kù)或Jira問(wèn)題中搜索代碼。
它使用問(wèn)題的標(biāo)題和描述,并自動(dòng)在你的Git存儲(chǔ)庫(kù)中找到匹配的內(nèi)容。
13.Dendron
Dendron 是典型的開(kāi)源社區(qū)編程思維的解決方案,雖然初看起來(lái)有一點(diǎn)學(xué)習(xí)曲線,但從根本上是給了使用者最大的自由發(fā)揮空間,同時(shí)又提供了最強(qiáng)大和最徹底的工具生態(tài)支持?!?/p>
14.Notion API
把概念和你每天使用的工具聯(lián)系起來(lái)·
15.Github1s
只需1秒,就可以用VS Code方式來(lái)看GitHub代碼?!?/p>
16.Ocean
容器的無(wú)服務(wù)器基礎(chǔ)架構(gòu)引擎·
17.Magic
快速構(gòu)建應(yīng)用程序,可定制,無(wú)密碼登錄
·
18.Jina
更簡(jiǎn)單的一種在云上構(gòu)建神經(jīng)搜索的方法,
19.Focalboard
一款開(kāi)源、本地存儲(chǔ)、免費(fèi)的類 Notion 應(yīng)用Focalboard 的自我定位是“Trello、Notion 和 Asana 的開(kāi)源、自托管替代品”?!?/p>
20.zx
更好地編寫腳本的工具(By Google)
21.OpenSearh
OpenSearch是阿里云開(kāi)放搜索簡(jiǎn)稱,為解決用戶結(jié)構(gòu)化數(shù)據(jù)搜索需求的托管服務(wù),支持?jǐn)?shù)據(jù)結(jié)構(gòu)、搜索排序、數(shù)據(jù)處理自由定制。·
22.Querybook
一個(gè)可以發(fā)現(xiàn)、創(chuàng)建和共享數(shù)據(jù)分析、查詢以及表的大數(shù)據(jù)IDE(通過(guò)Pinterest),
23.MangoDB
MongoDB是一款為web應(yīng)用程序和互聯(lián)網(wǎng)基礎(chǔ)設(shè)施設(shè)計(jì)的數(shù)據(jù)庫(kù)管理系統(tǒng)。MongoDB就是數(shù)據(jù)庫(kù),是NoSQL類型的數(shù)據(jù)庫(kù)
24.TooIJet
Retool的開(kāi)源替代品·
25.Kitemaker
Kitemaker是為團(tuán)隊(duì)而非經(jīng)理創(chuàng)建的超快速問(wèn)題跟蹤器。為遠(yuǎn)程團(tuán)隊(duì)創(chuàng)建的Jira的快速替代方案·
26.Appflowy
Appflowy 是一款使用 Flutter 和 Rust 構(gòu)建的開(kāi)源筆記軟件,它支持Windows、macOS和Linux,可以免費(fèi)下載使用
27.Kubegres
Kubegres 是一個(gè) Kubernetes Operator,用來(lái)部署并維護(hù) PostgreSql 集群,提供開(kāi)箱即用的數(shù)據(jù)復(fù)制和故障轉(zhuǎn)移功能,簡(jiǎn)化 PostgreSql 集群生命周期管理,降低數(shù)據(jù)復(fù)制的復(fù)雜性
28.Lightning Web Components
Lightning Web Components,業(yè)內(nèi)簡(jiǎn)稱LWC,是Salesforce于Spring 19發(fā)布的一款新型Lightning Component,快速的企業(yè)級(jí)Web組件基礎(chǔ)
29.Judo
用無(wú)代碼構(gòu)建原生應(yīng)用體驗(yàn)
30.Apache APISIX
Apache APISIX Apache APISIX是一個(gè)動(dòng)態(tài)、實(shí)時(shí)、高性能的API網(wǎng)關(guān)。提供了豐富的流量管理功能,如負(fù)載均衡、動(dòng)態(tài)上游、canary釋放、斷路、認(rèn)證、可觀察性等。
31.Control
提供免費(fèi)的加速、自動(dòng)化安全性以及SOC2合規(guī)
32.Remix
專注于Web技術(shù)和現(xiàn)代 用戶體驗(yàn)的框架
33.NocoDB
免費(fèi)并且開(kāi)源的Airtable替代方案
34.JetBrainsQodana
評(píng)估你擁有的、合同或購(gòu)買的代碼的完整性
35.TabnineAI
只能代碼編寫
36.Coolify
一個(gè)開(kāi)源的,自適應(yīng)的Heroku和Netlify的替代品
37.Penpot
開(kāi)源設(shè)計(jì)和原型平臺(tái)
38.Portman
Postman介紹:postman是一個(gè)開(kāi)源的接口測(cè)試工具,無(wú)論是做單個(gè)接口的測(cè)試還是整套測(cè)試腳本的撥測(cè)都非常方便。
39.Devops Stack
持續(xù)部署Kubernetes環(huán)境
40.Slidev
面向開(kāi)發(fā)人員的演示幻燈片
41.ReScript
ReScript 是一門針對(duì) JavaScript 程序員的新語(yǔ)言,特別是對(duì) TypeScript 和 Flow 的類型安全感興趣的程序員。ReScript 的語(yǔ)法和 JavaScript 非常相似
42.Fig
自定完成終端
43.FlutterFlow
Flutterflow 是一個(gè)在線低碼平臺(tái),使人們?cè)谝曈X(jué)上以人們?cè)谝曈X(jué)上構(gòu)建本機(jī)移動(dòng)應(yīng)用程序。
44.Porter
運(yùn)行在你自己的云中的Heroku
45.SigmaOS
在 SigmaOS 中,你會(huì)看到完全不同的瀏覽器布局,它更像是一個(gè)工作臺(tái)
46.VictoeiaMetrics DB
快速、低成本的監(jiān)控解決方案和時(shí)間序列數(shù)據(jù)庫(kù)
47.CloudflarePages
JAMstack平臺(tái)為前端開(kāi)發(fā)者提供協(xié)作和部署網(wǎng)站的平臺(tái)
48. Devbook
面向開(kāi)發(fā)者的搜索引擎
49.Front Matter
直接在VS Code中管理靜態(tài)站點(diǎn)
50.Supacase UI
用于企業(yè)儀表的React組件庫(kù)
以上可以說(shuō)是集結(jié)了開(kāi)發(fā)行業(yè)中的所有“神器”,不僅能助力程序員高效工作,也是今后走向開(kāi)發(fā)崗位小伙伴們的加薪工具。小伙伴可以從中挑選適合自己的工具~