Как указать путь к файлу json

Обновлено: 04.07.2024

Обозначение объектов JavaScript (JSON - JavaScript Object Notation) - стандартный текстовый формат для представления структурированных данных на основе синтаксиса объекта JavaScript. Он обычно используется для передачи данных в веб-приложениях (например, отправка некоторых данных с сервера клиенту,таким образом чтобы это могло отображаться на веб-странице или наоборот). Вы будете сталкиваться с этим довольно часто, поэтому в этой статье мы даём вам все, что вам нужно для работы с JSON используя JavaScript, включая парсинг JSON, чтобы вы могли получить доступ к данным внутри него при создании JSON.

Необходимые знания: Базовая компьютерная грамотность, базовые знания HTML и CSS, знакомство с основами JavaScript (см. First steps и Building blocks) и основами OOJS (see Introduction to objects).
Цель: Понять, как работать с данными, хранящимися в JSON, и создавать свои собственные объекты JSON.

Нет, действительно, что такое JSON?

JSON - текстовый формат данных, следующий за синтаксисом объекта JavaScript, который был популяризирован Дугласом Крокфордом. Несмотря на то, что он очень похож на буквенный синтаксис объекта JavaScript, его можно использовать независимо от JavaScript, и многие среды программирования имеют возможность читать (анализировать) и генерировать JSON.

JSON существует как строка,что необходимо при передаче данных по сети. Он должен быть преобразован в собственный объект JavaScript, если вы хотите получить доступ к данным. Это не большая проблема. JavaScript предоставляет глобальный объект JSON, который имеет методы для преобразования между ними.

Примечание: Преобразование строки в родной объект называется десериализацией (преобразование из последовательной формы в параллельную), в то время как преобразовании родного объекта в строку, таким образом ,чтобы он мог быть передан через сеть, называется сериализацией(преобразование в последовательную форму).

Объект JSON может быть сохранён в собственном файле, который в основном представляет собой текстовый файл с расширением .json и MIME type application/json .

Структура JSON

Как описано выше, JSON представляет собой строку, формат которой очень похож на буквенный формат объекта JavaScript. Вы можете включать одни и те же базовые типы данных внутри JSON, так же как и в стандартном объекте JavaScript - строки, числа, массивы, булевы и другие объектные литералы. Это позволяет построить иерархию данных, к примеру, так:

Если бы мы загрузили этот объект в программу JavaScript, создали переменную с названием superHeroes , мы могли бы затем получить доступ к данным внутри неё, используя те же самые точечную и скобочную нотации, которые мы рассмотрели в статье JavaScript object basics. Например:

Чтобы получить доступ к последующим данным по иерархии, вам просто нужно объединить требуемые имена свойств и индексы массивов. Например, чтобы получить доступ к третьей сверхспособности второго героя, указанного в списке участников, вы должны сделать следующее:

  1. Сначала у нас есть имя переменной - superHeroes .
  2. Внутри мы хотим получить доступ к свойству members , поэтому мы используем ['members'] .
  3. members содержат массив, заполненный объектами. Мы хотим получить доступ ко второму объекту внутри массива, поэтому мы используем [1] .
  4. Внутри этого объекта мы хотим получить доступ к свойству powers , поэтому мы используем ['powers'] .
  5. Внутри свойства powers находится массив, содержащий сверхспособности выбранного героя. Нам нужен третий, поэтому мы используем [2] .

Примечание. Мы сделали JSON, видимый выше, доступным внутри переменной в нашем примере JSONTest.html (см. исходный код). Попробуйте загрузить это, а затем получить доступ к данным внутри переменной через консоль JavaScript вашего браузера.

Массивы как JSON

Выше мы упоминали ,что JSON текст выглядит практически так же как и JavaScript объект,и это почти правильно.Причина,по которой мы говорим почти правильно заключается в том ,что массив также валиден JSON например:

Вышесказанное вполне справедливо для JSON. Вам просто нужно получить доступ к элементам массива (в его анализируемой версии), начиная с индекса массива, например [0]["powers"][0] .

Другие примечания

  • JSON - это чисто формат данных - он содержит только свойства, без методов.
  • JSON требует двойных кавычек, которые будут использоваться вокруг строк и имён свойств. Одиночные кавычки недействительны.
  • Даже одна неуместная запятая или двоеточие могут привести к сбою JSON-файла и не работать. Вы должны быть осторожны, чтобы проверить любые данные, которые вы пытаетесь использовать (хотя сгенерированный компьютером JSON с меньшей вероятностью включает ошибки, если программа генератора работает правильно). Вы можете проверить JSON с помощью приложения вроде JSONLint.
  • JSON может принимать форму любого типа данных, допустимого для включения в JSON, а не только массивов или объектов. Так, например, одна строка или номер будут действительным объектом JSON.
  • В отличие от кода JavaScript, в котором свойства объекта могут не заключаться в двойные кавычки, в JSON в качестве свойств могут использоваться только строки заключённые в двойные кавычки.

Активное обучение: Работа с примером JSON

Итак, давайте рассмотрим пример, чтобы показать то, как мы можем использовать некоторые данные JSON на веб-сайте.

Начало работы

Для начала создайте локальные копии наших файлов heroes.html и style.css. Последний содержит простой CSS для стилизации нашей страницы, в то время как первый содержит очень простой HTML-код сущности:

Плюс <script> , чтобы содержать код JavaScript, который мы будем писать в этом упражнении. На данный момент он содержит только две строки, которые захватывают ссылки на элементы <header> и <section> и сохраняют их в переменных:

Мы собираемся загрузить его на нашу страницу и использовать некоторые изящные манипуляции DOM, чтобы отобразить их, например:


Получение JSON

    Начнём с того, что мы собираемся сохранить URL-адрес JSON, который мы хотим получить в переменной. Добавьте нижеследующий код JavaScript:

Это занимает не менее двух параметров - есть другие доступные параметры. Нам нужно только два обязательных для этого простого примера:

Здесь мы сохраняем ответ на наш запрос (доступный в свойстве response ) в переменной superHeroes ; эта переменная теперь будет содержать объект JavaScript, основанный на JSON! Затем мы передаём этот объект двум вызовам функций - первый из них заполнит <header> правильными данными, а второй создаст информационную карту для каждого героя в команде и вставляет её в <section> .

Мы свернули код в обработчик событий, который запускается, когда событие загрузки запускается в объекте запроса (см. onload ) - это связано с тем, что событие загрузки запускается, когда ответ успешно возвращается; поступая таким образом,это гарантия того, что request.response определённо будет доступен, когда мы начнём работу с ним.

Теперь мы извлекли данные JSON и превратили его в объект JavaScript, давайте воспользуемся им, написав две функции, на которые мы ссылались выше. Прежде всего, добавьте следующее определение функции ниже предыдущего кода:

Мы назвали параметр jsonObj , чтобы напомнить себе, что этот объект JavaScript возник из JSON. Здесь мы сначала создаём элемент <h1> (en-US) с createElement() , устанавливаем его textContent равным свойству squadName объекта, а затем добавляем его в заголовок с помощью appendChild() . Затем мы выполняем очень похожую операцию с абзацем: создаём его, устанавливаем его текстовое содержимое и добавляем его в заголовок. Единственное различие заключается в том, что его текст задан, как конкатенированная строка, содержащая как homeTown , так и formed свойства объекта.

Создание информационных карт героя

Затем добавьте следующую функцию внизу кода, которая создаёт и отображает карты супергероев:

Для начала сохраним свойство members объекта JavaScript в новой переменной. Этот массив содержит несколько объектов, которые содержат информацию для каждого героя.

Затем мы используем for loop для циклического прохождения каждого объекта в массиве. Для каждого из них мы:

  1. Создаём несколько новых элементов: <article> , <h2> , три <p> и <ul> .
  2. Устанавливаем <h2> , чтобы содержать name текущего героя.
  3. Заполняем три абзаца своей secretIdentity , age и строкой, в которой говорится: «Суперспособности:», чтобы ввести информацию в список.
  4. Сохраняем свойство powers в другой новой переменной под названием superPowers - где содержится массив, в котором перечислены сверхспособности текущего героя.
  5. Используем другой цикл for , чтобы прокрутить сверхспособности текущего героя , для каждого из них мы создаём элемент <li> , помещаем в него сверхспособности, а затем помещаем listItem внутри элемента <ul> ( myList ) с помощью appendChild() .
  6. Последнее, что мы делаем, это добавляем <h2> , <p> и <ul> внутри <article> ( myArticle ), а затем добавляем <article> в <section> . Важное значение имеет порядок, в котором добавляются элементы, так как это порядок, который они будут отображать внутри HTML.

Примечание. Если вам не удаётся заставить этот пример работать, попробуйте обратиться к нашему исходному коду heroes-finished.html (см. также он работает в режиме live).

Примечание. Если у вас возникли проблемы после нотации точек / скобок, которые мы используем для доступа к объекту JavaScript, в этом поможет открытие файла superheroes.json на другой вкладке или в текстовом редакторе ,и обращаться к нему каждый раз, когда вам нужен JavaScript. Вы также можете обратиться к нашей статье JavaScript objectbasics чтобы получить дополнительную информацию о нотации точек и скобок.

Преобразование между объектами и текстом

Вышеприведённый пример был прост с точки зрения доступа к объекту JavaScript, потому что мы задали XHR-запрос для прямого преобразования ответа JSON в объект JavaScript, используя:

  • parse() : принимает строку JSON в качестве параметра и возвращает соответствующий объект JavaScript.
  • stringify() : принимает объект, как параметр и возвращает эквивалентную строковую JSON строку.

Вы можете увидеть первый метод в действии в нашем примере heroes-finished-json-parse.html (см. исходный код) - это то же самое, что и в примере, который мы создали ранее, за исключением того, что мы установили XHR для возврата сырого JSON текста, затем используется parse() , чтобы преобразовать его в фактический объект JavaScript. Ключевой фрагмент кода находится здесь:

Как вы могли догадаться, stringify() работает обратным образом. Попробуйте ввести следующие строки в консоль JavaScript браузера один за другим, чтобы увидеть его в действии:

Здесь мы создаём объект JavaScript, затем проверяем, что он содержит, а затем преобразуем его в строку JSON, используя stringify() , сохраняя возвращаемое значение в новой переменной, а затем снова проверяем его.

Резюме

В этой статье мы предоставили вам простое руководство по использованию JSON в ваших программах, в том числе о том, как создавать и анализировать JSON, и как получить доступ к данным, заблокированным внутри него. В следующей статье мы рассмотрим объектно-ориентированный JavaScript.

Подобно позиционированию XPath в XML-документах, выражения JsonPath обычно используются для поиска пути или установки Json. Выражение может принимать форматы «точка-нотация» и «скобка-нотация», такие как $ .store.book [0] .title, $ [‘store’] [’book’] [0] [‘title’]

символ описание
$ Корневой объект запроса, который используется для представления данных json, который может быть массивом или объектом.
@ Утверждение фильтра(Предикат фильтра) объект текущего узла, подобный этому полю в Java
* Подстановочный знак, который может представлять имя или номер
.. Можно понимать какРекурсивный поиск,Deep scan. Available anywhere a name is required.
.<name> Представляет дочерний узел
[‘<name>’ (, ‘<name>’)] Представляет один или несколько дочерних узлов
[<number> (, <number>)] Представляет один или несколько индексов массива
[start:end] Фрагмент массива, интервал [начало, конец), не включая конец
[?(<expression>)] Выражение фильтра, Результат выражения должен быть логическим

Он может быть вызван после выполнения выражения JsonPath, и его входное значение является результатом выражения.

имя описание экспорт
min() Получить минимальное значение числового массива Double
max() Получить максимальное значение числового массива Double
avg() Получить среднее значение для числового массива Double
stddev() Получить стандартное отклонение числового массива Double
length() Получить длину числового массива Integer

Фильтр - это логическое выражение, используемое для фильтрации массива. Общее выражение: [? (@. Age> 18)]. Вы можете объединить несколько выражений фильтра с логическими выражениями && или ||, например [ ? (@. price <10 && @ .category == 'fiction')], строка должна быть заключена в одинарные или двойные кавычки, например [? (@. color == 'blue')] или [? (@. цвет == "синий")].

JsonPath выражение Результат
$.store.book[*].author
или
$..author
[
“Nigel Rees”,
“Evelyn Waugh”,
“Herman Melville”,
“J. R. R. Tolkien”
]
$ .store. * показывает все значения конечных узлов [
[
”category” : “reference”,
”author” : “Nigel Rees”,
”title” : “Sayings of the Century”,
”price” : 8.95
>,
”category” : “fiction”,
”author” : “Evelyn Waugh”,
”title” : “Sword of Honour”,
”price” : 12.99
>,
”category” : “fiction”,
”author” : “Herman Melville”,
”title” : “Moby Dick”,
”isbn” : “0-553-21311-3”,
”price” : 8.99
>,
”category” : “fiction”,
”author” : “J. R. R. Tolkien”,
”title” : “The Lord of the Rings”,
”isbn” : “0-395-19395-8”,
”price” : 22.99
>
],
”color” : “red”,
”price” : 19.95
>
]
$.store..price [
8.95,
12.99,
8.99,
22.99,
19.95
]
$..book[0,1]
или
$..book[:2]
[
”category” : “reference”,
”author” : “Nigel Rees”,
”title” : “Sayings of the Century”,
”price” : 8.95
>,
”category” : “fiction”,
”author” : “Evelyn Waugh”,
”title” : “Sword of Honour”,
”price” : 12.99
>
]
$..book[-2:] Получить последние две книги
$..book[2:] [
”category” : “fiction”,
”author” : “Herman Melville”,
”title” : “Moby Dick”,
”isbn” : “0-553-21311-3”,
”price” : 8.99
>,
”category” : “fiction”,
”author” : “J. R. R. Tolkien”,
”title” : “The Lord of the Rings”,
”isbn” : “0-395-19395-8”,
”price” : 22.99
>
]
$..book[?(@.isbn)] Все книги с атрибутами isbn
$.store.book[?(@.price < 10)] Все книги менее 10
$..book[?(@.price <= $[‘expensive’])] Все книги с ценами ниже дорогого поля
$..book[?(@.author =

Обычно вызывается напрямую с использованием API статического метода, например:

Однако описанный выше метод применим только к случаю синтаксического анализа json один раз. Если вам нужно проанализировать один и тот же json несколько раз, его не рекомендуется использовать, поскольку при каждом чтении будет снова обрабатываться json. В этом случае рекомендуется использовать ReadContext и WriteContext, например:

Обычно возвращаемое значение после чтения будет автоматически преобразовано в указанный тип. В соответствии с явно определенным определенным выражением должен быть указан соответствующий тип. Для неопределенных неоднозначных выражений, таких как: . (<Expression>), [< число>, <число> (, <число>)], обычно следует использовать массив. Если вам нужно преобразовать в определенный тип, вам нужно настроить mappingprovider через конфигурацию следующим образом:


Среди них JsonSmartMappingProvider обеспечивает преобразование следующих основных типов данных.Этот поставщик установлен по умолчанию. Класс DefaultsImpl, возвращаемый в Configuration.defaultConfiguration (), использует JsonSmartMappingProvider.

Переключите провайдера следующим образом:

Есть три способа создать утверждение фильтра.

9.1 Inline Predicates

Используйте фильтр для подтверждения выражения? (<@ Expression>), например:

9.2 Filter Predicates

Используйте API фильтра. Например:

  • В выражениях JsonPath должны быть заполнители утверждений. При наличии нескольких заполнителей они будут заменены по порядку.
  • Вы также можете использовать или или между несколькими фильтрами.

9.3 Roll Your Own

Реализуйте интерфейс Predicate самостоятельно.

Иногда необходимо вернуть все пути, полученные текущим выражением JsonPath, которые можно использовать следующим образом:

11.1 DEFAULT_PATH_LEAF_TO_NULL

Пустой объект возвращается, если он не получен, в противном случае, если он не настроен, исключение PathNotFoundException будет выдано напрямую, например:

11.2 ALWAYS_RETURN_LIST

Всегда возвращайте список, даже если это определенный тип, не относящийся к списку, он будет заключен в список.

11.3 SUPPRESS_EXCEPTIONS

Не выдает исключение, нужно судить о следующем:

  • ALWAYS_RETURN_LIST включен, вернуть пустой список
  • ALWAYS_RETURN_LIST закрыт, вернуть ноль

11.4 AS_PATH_LIST

11.5 REQUIRE_PROPERTIES

Если установлено, подстановочные символы недопустимы, такие как $ [*]. B, и будет выдано исключение PathNotFoundException.

Кэш выбирается при каждом чтении для увеличения скорости, но по умолчанию он не включен.

JsonPath 2.1.0 предоставляет новый spi, который должен быть настроен перед использованием или перед выбрасыванием JsonPathException. В настоящее время доступны две реализации:

Я сохранил файл JSON в своей локальной системе и создал файл JavaScript, чтобы, например, прочитать файл JSON и распечатать данные. Вот файл JSON:

предположим, что это путь к файлу JSON: /Users/Documents/workspace/test.json .

может ли кто-нибудь помочь мне с написанием простого фрагмента кода для чтения файла JSON и печати данных внутри него в JavaScript?

обходным путем является запуск локального веб-сервера, обслуживание файла и вызов AJAX на localhost.

что касается помощи в написании кода для чтения JSON, вы должны прочитать документацию для jQuery.getJSON() :

для чтения внешнего локального файла JSON (data.json) используя javascript, сначала создайте свои данные.файл json:

укажите путь к файлу json в источнике скрипта вместе с файлом javascript.

получить объект из файла json

для получения дополнительной информации см. раздел этой ссылке.

загрузка from harddisk является асинхронной операцией, и поэтому ей необходимо указать функцию обратного вызова для выполнения после загрузки файла.

эта функция работает также для загрузки .html или .txt файлы, путем переопределения параметра типа mime в "text/html" , "text/plain" etc.

  1. сначала создайте файл json. В этом примере мой файл-words.в JSON
  1. и вот мой код i.e, узел.js. Примечание до readFileSync : это делает его возвращение не Buffer (хотя JSON.parse справится), а строкой. Я создаю сервер, чтобы увидеть результат.
  1. когда вы хотите прочитать определенные детали ИД вы можете назовите код as..
  1. когда вы вошли в адрес localhost:3030/get/33 это даст детали, связанные с этим идентификатором. и Вы тоже читаете по имени. Мой файл json имеет simillar имена с этим кодом вы можете получить сведения об одном имени. и он не напечатал все имена simillar
  1. и если вы хотите узнать подобные детали, вы можете использовать это код.
  1. если вы хотите прочитать всю информацию в файле, используйте этот код ниже.

в зависимости от Вашего браузера, вы можете получить доступ к локальным файлам. Но это может не сработать для всех пользователей вашего приложения.

после загрузки файла вы можете получить данные, используя:

вы можете просто сделать:

обратите внимание: файл загружается один раз, последующие вызовы будут использовать кэш.

Если вы используете локальные файлы, почему бы просто не упаковать данные как объект js?

данные.js

очень удобно.
Переименуйте файл json в ".Ак" вместо ".формат JSON."

поэтому следуйте своему коду нормально.

однако, просто для информации, содержание моего json это выглядит как СНиП ниже.

вы можете увидеть ответ myObj с помощью консоли.инструкция log (комментируется).

Если у вас есть файл в другой папке, укажите полный путь вместо имени файла.

поскольку у вас есть веб-приложение, у вас может быть клиент и сервер.

Если у вас есть только ваш браузер, и вы хотите прочитать локальный файл с помощью JavaScript, который работает в вашем браузере, это означает, что у вас есть только клиент. По соображениям безопасности браузер не должен позволять вам делать такие вещи.

однако, как объяснил лаухуб выше, это, похоже, работает:

чтение JSON можно переместить в другую функцию, для DRY; но пример здесь больше демонстрирует, как использовать обещания.

один простой обходной путь-поместить ваш файл JSON внутри локально работающего сервера. для этого с терминала перейдите в папку проекта и запустите локальный сервер на каком-нибудь порту e.g 8181

использование Fetch API является самым простым решением:

он отлично работает в Firefox, но в Chrome вам нужно настроить параметры безопасности.

вы можете использовать D3 для обработки обратного вызова и загрузки локального файла JSON data.json следующим образом:


Как уже упоминалось ранее, это не работает с помощью вызова AJAX. Однако, есть способ обойти это. Используя элемент input, вы можете выбрать файл:

затем вы можете прочитать файл с помощью JS с FileReader():

взял Стано-х отличный ответ и завернул его в обещание. Это может быть полезно, если у вас нет такой опции, как node или webpack, чтобы вернуться к загрузке файла json из файловой системы:

вы можете назвать это так:

Итак, если вы планируете пойти с "Apache Tomcat" для размещения вашего файла JSON,

1> после запуска сервера убедитесь, что ваш Apache Tomcat запущен и работает, перейдя по следующему url: "localhost:8080" -

enter image description here

2> Далее, перейдите к "папке webapps" - "C:\Program файлы\Apache Software Foundation\Tomcat 8.5\webapps". И создайте папку проекта или скопируйте проект папка.

enter image description here

enter image description here

3> вставьте туда свой файл json.

enter image description here

4> и все. Вы молодец! Просто иди к . --35-->http://localhost:8080/$имя_проекта$/$jsonFile_name$.в JSON"

Файлы используются программами для долговременного хранения информации, как необходимой для собственной работы (например, настройки), так и полученной во время ее исполнения (результаты вычислений и т.д.). Подавляющее большинство программ сегодня в том или ином виде используют файлы, сохраняя результаты работы между сеансами запуска.

8.1.1. Файлы и файловая система¶

Файл (англ. File) - именованная область данных на носителе информации.

Файлы хранятся в файловой системе - каталоге, определяющим способ организации, хранения и именования данных, а также задающем ограничения на формат и доступ к данным. На сегодняшний день наиболее популярными являются древовидные каталоги (также директории или папки) - файлы, содержащие записи о входящих в них файлах (Рисунок 8.1.1).

_images/08_01_01.jpg

Рисунок 8.1.1 - Пример древовидной организации файловой системы в ОС Windows 6. ¶

Файловая система связывает носитель информации с одной стороны и программный интерфейс для доступа к файлам - с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же как и на каком физическом типе носителя (CD, жестком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Все, что знает программа - это имя файла, его размер и атрибуты (получая их от драйвера файловой системы). Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жестком диске) (Рисунок 8.1.2).

_images/08_01_02.jpg

Рисунок 8.1.2 - Файловая система предоставляет интерфейс доступа к файлам для операционной системы 7 ¶

8.1.1.1. Свойства файла¶

Файл может обладать различным набором свойств в зависимости от файловой системы.

В большинстве файловых систем файл имеет следующие свойства:

имя и расширение (как правило, называемые просто именем вместе): например, моя_программа.py ;

дата/время (могут быть предусмотрены маркеры создания, модификации и последнего доступа);

атрибуты (скрытый, системный и др.) и права доступа.

Имя файла имеет определенные ограничения в зависимости от файловой и операционной системы, в частности, допустимые знаки и длину наименования. Расширение указывается после имени через точку, имея назначение, в основном, для ОС Windows, где определяет приложение для запуска файла.

8.1.1.2. Путь к файлу: абсолютный и относительный¶

Для того, чтобы найти файл в файловой системе необходимо знать к нему путь - узлы дерева файловой системы, которые нужно пройти, чтобы до него добраться.

В операционных системах UNIX разделительным знаком при записи пути является / , в Windows — \ : эти знаки служат для разделения названия каталогов, составляющих путь к файлу.

Путь может быть:

абсолютным (полным): указывает на одно и то же место в файловой системе вне зависимости от текущей рабочей директории или других обстоятельств;

относительным: путь по отношению к текущему рабочему каталогу пользователя или активных приложений.

Примеры путей для ОС Windows и UNIX:

относительный: example1.py если текущий каталог C:\user\python\ ;

относительный: python\example1.py если текущий каталог C:\user\ ;

относительный: example1.py если текущий каталог /home/user/python/ ;

относительный: user/python/example1.py если текущий каталог /home/ .

См. более подробно про пути в разных операционных системах.

8.1.1.3. Операции с файлами¶

Все операции с файлами можно подразделить на 2 группы:

связанные с его открытием: открытие, закрытие файла, запись, чтение, перемещение по файлу и др.

выполняющиеся без его открытия: работа с файлом как элементом файловой системы - переименование, копирование, получение атрибутов и др.

При открытии файла, как правило, указываются:

после чего операционная система возвращает специальный дескриптор файла (идентификатор), однозначно определяющий, с каким файлом далее будут выполняться операции. После открытия доступен файловый указатель - число, определяющее позицию относительно начала файла.

8.1.1.4. Виды файлов¶

По способу организации файлы делятся на файлы с последовательным и произвольным доступом (Рисунок 8.1.3, Таблица 8.1.1).

Читайте также: