2016-06-19 2 views
2

Раньше я сохранял только строку в своем файле, которая может храниться на SD-карте, теперь я хотел бы хранить байт [] также в одних и тех же файлах. Так что мне просто нужно нормально хранить файл как строка: - bufferWritter.write(data); для байтов: - FileUtils.writeByteArrayToFile(new File("pathname"), myByteArray) или fos.write(myByteArray);Хранить массив байтов и строку в том же файле

Так что, если я делать так, то как я могу отличаться сообщение, будь то строка или байт []. Даже я хотел бы знать, что это хороший способ сделать?

+0

Это не очень чисто, на мой взгляд. Не могли бы вы уточнить свою цель? –

+0

Мне нужно сохранить сообщения, которые могут быть нормальной строкой или изображением (которое преобразуется в массив байтов) в одном файле. –

+0

@TinTran И еще одно, что мне нужно отправить этот файл на сервер (если я не отправляю изображения на сервер, поэтому я могу хранить путь изображения в своем файле и хранить изображение в своем локальном хранилище). –

ответ

1

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

[байт] Порядок сортировки данных (0 = String, 1 = Image)

А затем фактические данные.

Но я бы порекомендовал вам использовать другой формат, например json, или сделать сериализуемый объект.

1

Я хотел бы дать попробовать на какой-то JSON реализации (возможно GSON? Или какой-либо альтернативы), так что вы можете быть сохранены смешанные типы данных в одном файле или написать свой собственный де/сериализации рутинных, так что вы можете хранить целые объекты ,

Примечание: если реализовать Serializable интерфейса класса, который представляет собой объект для хранения, не забудьте повторно генерировать UUID каждый раз, когда вы меняете содержимое этого класса, это поможет вам сэкономить некоторое время выяснить, что пошло не так

Смежные вопросы