Проверка файла CSV с Java

Вы можете подключиться к любому из этих событий: https://www.progress.com/documentation/sitefinity-cms/for-developers-dynamic-modules-events

, например. IDynamicContentUpdatingEvent или IDynamicContentUpdatedEvent и выполнить свою логику.

Будьте внимательны, поскольку эти события могут срабатывать несколько раз, один раз для предмета Temp и снова для предмета Master, так что вы можете проверить это.

7
задан Michael Myers 13 March 2009 в 20:52
поделиться

2 ответа

Определение типа MIME файла не является чем-то легким, чтобы сделать, особенно если разделы ASCII могут быть смешаны с двоичными единицами.

На самом деле, когда Вы смотрите на то, как почтовая система Java действительно определяет тип MIME электронного письма, это действительно вовлекает чтение всех байтов в него и применение некоторых "правил".
Выезд MimeUtility.java

  • Если основной тип этого источника данных является "текстом" и если всеми байтами в его входном потоке является US-ASCII, то кодирование составляет "7 битов".
  • Если больше чем половиной байтов является неUS-ASCII, то кодирование является "base64".
  • Если меньше чем половиной байтов является неUS-ASCII, то кодирование "заключается в кавычки - печатаемый".
  • Если основной тип этого источника данных не является "текстом", то, если всеми байтами его входного потока является US-ASCII, кодирование составляет "7 битов".
  • Если существует даже один символ неUS-ASCII, кодирование является "base64". @return "7 битов", "заключенных в кавычки - печатаемый" или "base64"

Как упомянуто mmyers в удаленном комментарии, JavaMimeType, как предполагается, делает то же самое, но:

  • это мертво с 2006
  • это действительно включает чтение всего содержания!

:

File file = new File("/home/bibi/monfichieratester");
InputStream inputStream = new FileInputStream(file);
ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();
int readByte;
while ((readByte = inputStream.read()) != -1) {
    byteArrayStream.write(readByte);
}
String mimetype = "";
byte[] bytes = byteArrayStream.toByteArray();

MagicMatch m = Magic.getMagicMatch(bytes);
mimetype = m.getMimeType();

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

2
ответ дан 7 December 2019 в 18:46
поделиться

Волшебство Пантомимы Java может быть полезным. Это проанализирует типы пантомимы из файлов и inputstreams. Я не могу ручаться, поскольку это - функциональность, как бы то ни было.

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

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

0
ответ дан 7 December 2019 в 18:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: