У меня есть файл класса java с тремя списками массивов, один с типом String, один с типом Integer, а другой - ArrayList с типом (ArrayList (String)). Я должен написать эти эти arraylists к структуре в C с массивами символов, целыми числами и короткими и вывести файл в расширении specefic. Файл должен быть снова прочитан одним и тем же приложением. Каков наилучший способ передать данные из структуры java в c, а затем вывести структуру c в файл. СпасибоСопоставление данных переменных java с C Структуры и запись c совместимого файла
ответ
Нет формата «Совместимый с C». Если у вас есть C-структуры, записанные непосредственно на файл диска, то они находятся в двоичном формате ad-hoc. Точный формат зависит от таких вещей, как packing and padding от структуры, byte order, размер слова процессора (например, 32 или 64 бит) и т.д.
Итак, начнем с определения формата, то забывают, что получают С.
Как только вы определили формат, вы можете написать программу для ее анализа на Java. Если он короткий с фиксированными записями длины, я бы, вероятно, создал класс, который внутри всего имеет только частный массив byte[]
, а затем методы для его управления, сохранения и загрузки.
Это имеет для меня больше смысла. Спасибо, hyde. Я попробую определить структуру, прочитать и записать файл и вернуться. –
Предлагаю вам написать/прочитать данные в ByteBuffer, используя собственный порядок байтов. Остальное зависит от вас, как вы это делаете.
Библиотека, которая может помочь, это библиотека Javolution's Struct, которая поможет вам нарисовать структуры C на ByteBuffers. Это может помочь в различных правилах заполнения, т. Е. Точное расположение может быть не очевидным.
Этот, кажется, более relavant. Спасибо, Питер, я попробую это и вернусь. Есть ли способ включить файл .c в проект java и вызвать функцию c из этого файла .java-класса –
@techXploiter Да и нет. Вы можете включить его, но не таким образом, чтобы избежать необходимости перевода перевода с Java на C. После того, как вы его перевели, вы можете использовать его в собственном коде, но это вам действительно не поможет. –
Это означает, что лучше всего сделать перевод, напишите файл и прочитайте его в обратном порядке, не включив в него собственный файл –
- 1. Сопоставление структуры данных в Java
- 2. Сопоставление данных с C на Java
- 3. Настройка переменных структуры - C
- 4. Распределение переменных структуры C?
- 5. Запись структуры в файл, C
- 6. Чтение и запись структуры в C
- 7. FluentNhibernate C# сопоставление XML-файла?
- 8. Структуры данных C#
- 9. C#: Сопоставление типа данных
- 10. Получение переменных из структуры - c
- 11. C++ структуры данных и CUDA
- 12. Создание и запись файла C++
- 13. Понимание переменных с программированием Структуры C
- 14. Сопоставление XML-файла с классом C#
- 15. C-программа - Структурирование переменных данных и выравнивание
- 16. Сопоставление переменных по определенному адресу в C
- 17. Сопоставление специфических функций C++ с C++/CLI
- 18. C структуры данных
- 19. дескриптор файла делает запись данных в C
- 20. C++ - Запись файла ехе
- 21. Сопоставление данных в WPF (C#)
- 22. Запись производительности файла C++
- 23. C библиотеки структуры данных
- 24. Структуры данных в C?
- 25. Структуры данных и их сопоставление с базами данных в .Net
- 26. магазин структуры данных C++
- 27. C# Запись файла
- 28. C++ Чтение из файла и присвоение переменных
- 29. Заменить сопоставление памяти C с эквивалентами C++
- 30. чтение и запись большого размера файла C#
Нет лучшего способа. Вам просто нужно выбрать формат файла, такой как CSV, XML, JSON, собственный формат, который можно прочитать с обеих сторон (Java, C) – Piro
Я пробовал понимать буферы протокола google, но я не знаю, как это сделать, и лучший способ, который я имел в виду, как я должен это делать. Я должен написать java-структуры для c-совместимого файла, а lator - для чтения совместимого с c-файла файла в java-приложении. –
Что означает «C-совместимый файл»? – hyde