Один из самых удобных способов записать данные это использование готовых форматов, такие как JSON или YAML.
Из плюсов такого подхода стоит отметить вот что:
🔸 готовый, повсеместно используемый и поддерживаемый формат
🔸 простой и понятный файл, удобочитаемый для человека
🔸 можно легко редактировать в любом текстовом редакторе без специальных программ и библиотек
Но есть и минусы
🔹 затраты времени при записи файла (кодирование данных в нужный формат строки)
🔹 затраты времени при чтении файла (декодирование данных в Python объекты)
🔹 размер файла увеличивается из-за разметки данных (скобки, запятые, переносы, отступы...)
🔹 перед записью все данные должны быть помещены в память в полном объёме (не всегда)
🔹 при чтении необходимо считать весь файл в память и только потом декодировать данные
Если нужно писать немного данных в несколько файлов, то затраты по времени не ощутимы. Обычно это файлы конфига или какие-либо метаданные. Это отличный вариант под такие задачи.
Есть и другой поход к записи файлов - это бинарные файлы. Используется, когда данных достаточно много и никто их не собирается читать глазками😳.
🔸 очень быстрая запись
🔸 чтение значительно быстрей чем JSON, YAML итд
🔸 размер файла значительно меньше, так как нет разметки
🔸 можно записывать данные по мере поступления не загружая всё в память
🔸 можно извлечь любую часть данных независимо
Из минусов
🔹 нужно определить свой формат записи данных (если не используете готовую спецификацию определённого формата)
🔹 не получится открыть файл и визуально понять что там записано, а для чтения файла потребуется знать его спецификацию.
🔹 не так-то просто создать такой файл без специальной библиотеки
В таком виде удобно записывать большой массив любых однородных данных. Например, мониторинг валютной биржи или кэшированная анимация 3D геометрии.
(Это не означает что нельзя записать данные разного типа, просто это будет не так удобно)
Представьте себе JPG-картинку. По сути это немного мета-информации и большой массив пикселей. Тоже самое со звуком или видео файлом. Поэтому, если вы попробуете открыть картинку в текстовом редакторе вы увидите что-то вроде такого
f15d cd29 a564 4578 ...
09e2 9bc4 a696 1253 ...
84e9 4de1 3b23 c24a ...
2534 5161 28e0 709d ...
...
Это и есть записанные байтики. И для их чтения требуется определённый софт который знает что с ними делать. Под каждый тип файла.
К чему это я? Читайте в следующем посте...
#tricks#basic
Apple Arcade 上新 —— Wheel of Fortune Daily
🔗App Store
《Wheel of Fortune》已陪伴观众近 50 年,现在《Wheel of Fortune Daily》将这款「美国游戏®」打造成了一种简单、轻松的日常体验,让您随时随地都能享受。转动转盘,解开谜题,每天赢大奖!
《Wheel of Fortune Daily》将最受欢迎的夜间电视节目重新构想,适用于 iPhone、Mac、Apple TV 和 Apple Vision Pro。通过这款益智游戏,每天揭开谜题的乐趣,发现新挑战。
#AppleArcade
📮 频道 @AppPie
Apple Arcade 上新 —— Arkanoid vs Space Invaders+
🔗App Store
《Arkanoid vs Space Invaders》,荣获 GameSpot 「2017 年五大最佳手机游戏」之一,现已登录 Apple Arcade!
游戏亮点
• Arkanoid 与 Space Invaders 的完美融合!
• 抵御入侵者,挑战 150 个关卡和两种模式!
• 在排名模式和其他功能中突破极限!
#AppleArcade
📮 频道 @AppPie
Apple Arcade 上新 —— NBA 2K25 Arcade Edition
🔗App Store
开启你的 NBA 之旅,从一名年轻的新秀成长为 NBA 传奇。打造你的球员,为他们选择身高、臂展、体重、球风等设置。选择你的位置,为你最爱的 NBA 球队效力。
《NBA 2K25 Arcade 版》新功能
• 在室外街球场和室内球场完成任务,即可为自己的自创球员赢取鞋子、服装、纹身等奖励!
• 可招募 NBA 传奇人物加入你的街球队,并通过连线赛在 PvP 排名对战中挑战来自世界各地的玩家!攀登 Game Center 排行榜,让全世界看看你的实力!
• 全新徽章体系,将你的自创球员塑造成 NBA 传奇。探索街区,完成任务赢取徽章点数以提高进攻和防守数据!
• 重新打造的史上最强模式:重温职业生涯的决定性时刻,在 2024 — 2025 NBA 赛季中解锁全新的 NBA 超级明星阵容!
在你的 iPhone、iPad、Mac 或 Apple TV 上单机游玩,或通过 iCloud 和朋友一起游玩。
#AppleArcade
📮 频道 @AppPie
Apple Arcade 上新 — The Battle of Polytopia+
🔗App Store
《多托邦之战》是一款屡获殊荣的独特回合制策略游戏,涉及控制地图、与敌方部落作战、发现新土地和掌握新技术。
你扮演一个部落的统治者,并试图在与其他部落的回合制竞争中建立一个文明。 它可以离线播放。 非常适合旅行。
#AppleArcade
📮 频道 @AppPie