Titanium
|
|||||||||||
1 | |||||||||||
Запись и чтение файла своего типа16.04.2011, 22:25. Показов 2274. Ответов 13
Метки нет (Все метки)
есть файл записанный на delphi :
чтобы можно было прочесть этот файл и из delphi и из java
|
16.04.2011, 22:25 | |
Ответы с готовыми решениями:
13
Реализовать запись в файл и чтение из файла данных, хранящихся в массиве объектов пользовательского типа запись и чтение изображения в файл своего расширения Чтение удалённого XML-файла со своего web-сайта Чтение файла, чтение названия папки где находится файл, запись данных на PHP |
3 / 3 / 3
Регистрация: 09.07.2008
Сообщений: 422
|
|
17.04.2011, 11:12 | 2 |
Delphi и Java по-разному сохраняют свои объекты. Однако тот факт, что любой объект может быть представлен в виде массива байтов (разный для каждого из языков), дает надежду, что эта задача может быть решена. Если принять за стандарт, к примеру, форму записи объектов в Delphi, тогда в Java, возможно, удасться написать конвертор (для этого надо знать форматы сохранения объектов в Delphi и Java), который переконвертирует байты объекта записанного в Delphi в байты, как если бы он был сохранен в Java. Тогда Java, возможно, сможет прочитать Ваш файл...
Я бы подошел к этой задаче иначе - обратите внимание на XML.
0
|
Titanium
|
|
17.04.2011, 16:35 | 3 |
Я тоже с самого начала тоже думал о XML. Но первая программа была на Delphi, поэтому я решил не заморачиваться и работал просто с файлами. Просто объем файла всего 85 байт. Получиться что xml кода будет больше чем самих данных.
|
3 / 3 / 3
Регистрация: 09.07.2008
Сообщений: 422
|
|
17.04.2011, 16:53 | 4 |
С другой стороны - прочитать Дельфи-объекты в Java Вам врядли удастся.
Возможно, Ваши данные позволят использовать формат .CSV? На худой конец возможно придется создавать файл собственного формата...
0
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
17.04.2011, 18:13 | 5 |
Разница только в порядке байтов, например целое число 1 пишется или в виде 1000 или 0001. Если использовать java.nio , то файл можно прочитать в ByteBuffer, для которого явно установить необходимый порядок байтов (LITTLE_ENDIAN или BIG_ENDIAN) и извлекать из буфера значения через getInt(), getFloat() ...
0
|
Titanium
|
|
17.04.2011, 18:47 | 6 |
Вообщем в файле должно быть 7 троек чисел ну т.е. 23 числа, но желательно их хранить не в открытом виде. зашифровать как-нибудь простенько (только чтобы потом и в delphi читалось).
|
paradise
|
|
18.04.2011, 09:21 | 7 |
>>> 7 троек чисел ну т.е. 23 числа
Интересно... |
Titanium
|
||||||
18.04.2011, 21:44 | 8 | |||||
я имел в виду 21 число ,
плиз киньте в меня простенький пример java&xml. требуется то всего прочесть две строчки
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
18.04.2011, 23:09 | 9 |
зачем хмл, прочитайте как стринг и стрингтокенайзером выделите числа.
0
|
Titanium
|
|
19.04.2011, 06:10 | 10 |
можно поподробнее про string?
т.е. просто прочесть как строку их файла? |
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
19.04.2011, 16:33 | 11 |
ну конечно, тот хмл файл, что вы привели, это обычный текст. Вот и читайте его через BufferedReader , отсеките ненужные начало и конец, и выделите подстрочки с числами. Переведите их потом в int.
0
|
Titanium
|
|
20.04.2011, 16:40 | 12 |
кстати! как перевести string в int? только посимвольно?
|
0 / 0 / 0
Регистрация: 20.04.2011
Сообщений: 5
|
|
20.04.2011, 17:54 | 13 |
Integer.parseInt(String s);
Double.parseDouble(String s); Integer.parseInt(String s, int radix); Double.parseDouble(String s, int radix); и т.д.
0
|
Titanium
|
|
21.04.2011, 17:37 | 14 |
спасибо!
|
21.04.2011, 17:37 | |
21.04.2011, 17:37 | |
Помогаю со студенческими работами здесь
14
Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран Многопоточность, чтение и запись переменной типа стринг Неправильное чтение и запись данных типа datetime Побайтовое чтение и запись любого типа файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |