Как создать изображение даты в Java

Вот что мы придумали для копирования одного поля в другое для ~ 150_000 записей. Это заняло около 6 минут, но все еще значительно менее ресурсоемким, чем это было бы для создания экземпляра и повторения одного и того же количества объектов ruby.

js_query = %({
  $or : [
    {
      'settings.mobile_notifications' : { $exists : false },
      'settings.mobile_admin_notifications' : { $exists : false }
    }
  ]
})

js_for_each = %(function(user) {
  if (!user.settings.hasOwnProperty('mobile_notifications')) {
    user.settings.mobile_notifications = user.settings.email_notifications;
  }
  if (!user.settings.hasOwnProperty('mobile_admin_notifications')) {
    user.settings.mobile_admin_notifications = user.settings.email_admin_notifications;
  }
  db.users.save(user);
})

js = "db.users.find(#{js_query}).forEach(#{js_for_each});"
Mongoid::Sessions.default.command('$eval' => js)
9
задан ProgramFOX 13 November 2013 в 18:30
поделиться

5 ответов

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

11
ответ дан 4 December 2019 в 10:06
поделиться

Вам, вероятно, нужно что-то для доступа к exif данным. Google предлагает эту библиотеку.

0
ответ дан 4 December 2019 в 10:06
поделиться

Дата хранится в данных EXIF в jpeg. Существует библиотека Java и средство просмотра в Java, который мог бы быть полезным.

6
ответ дан 4 December 2019 в 10:06
поделиться

Я пользуюсь этой библиотекой метаданных: http://www.drewnoakes.com/code/exif/

Кажется, работает вполне прилично, хотя принимают во внимание, что не все изображения JPEG имеют эту информацию, таким образом, это не может быть на 100% надежным.

Если метаданные EXIF не содержат созданную дату, то необходимо будет, вероятно, суметь обойтись lastUpdated Java - если Вы не хотите обратиться к Runtime.exec (...) и использующий системные функции для обнаружения (я не рекомендовал бы это, хотя!)

4
ответ дан 4 December 2019 в 10:06
поделиться

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(final String[] args) {
        try {
            // get runtime environment and execute child process
            Runtime systemShell = Runtime.getRuntime();
            BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Enter filename: ");
            String fname=(String)br1.readLine();
            Process output = systemShell.exec("cmd /c dir /a "+fname);
             // open reader to get output from process
            BufferedReader br = new BufferedReader (new InputStreamReader(output.getInputStream()));

            String out="";
            String line = null;

            int step=1;
             while((line = br.readLine()) != null ) 
              {
                 if(step==6)
                {
                out=line;
                }
                 step++;
                 }          // display process output

            try{
            out=out.replaceAll(" ","");
            System.out.println("CreationDate: "+out.substring(0,10));
            System.out.println("CreationTime: "+out.substring(10,15));
            }
            catch(StringIndexOutOfBoundsException se)
            {
                System.out.println("File not found");
            }
            }
          catch (IOException ioe){ System.err.println(ioe); }
          catch (Throwable t) { t.printStackTrace();}
    }
}
0
ответ дан 4 December 2019 в 10:06
поделиться
Другие вопросы по тегам:

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