какой тип интерфейса нам понадобится, который будет читать расширение загруженного файла, а затем вызывать необходимый файл Java - PullRequest
0 голосов
/ 13 июля 2011

какой тип интерфейса нам понадобится, он будет читать расширение загруженного файла, а затем вызывать необходимый файл Java. Например: если вы загрузили «hello.pdf», он вызовет pdf.java (который очистит метаданные). Я не знаю, понятно ли это, но, дайте мне знать, если вы понимаете, о чем я говорю.

1 Ответ

1 голос
/ 13 июля 2011

Определить расширение довольно просто, вызовите java.io.File.getName (). Это вернет полное имя файла плюс расширение. Используйте строковые операции, такие как .lastIndexOf (".") И подстроку, чтобы получить расширение.

Теперь вы можете определить интерфейс для очистки метаданных:

public interface MetaDataEraseable {

        public void clearMetaData();

 }

Далее Создайте несколько реализаций:

public class PDFMetaDataEraser implements MetaDataEraseable {

 public void clearMetaData() { //... do custom pdf code here }


}


public class JpegMetaDataEraser implements MetaDataEraseable {

 public void clearMetaData() { //... do custom jpeg code here }


}

Далее вы можете создать фабрику, которая будет возвращать правильный экземпляр на основе расширения:

открытый статический класс MetaDataFactory {

public MetaDataEraseable getInstance(String ext) {

    if(ext.equalsIgnoreCase("pdf")) {
       return new PDFMetaDataEraser ();
    } else if(ext.equalsIgnoreCase("jpg")) {
       return new JpegMetaDataEraser ();
    }

 }

}

Наконец-то назовите свой код в приложении ...

File uploadedFile = //get the file however you want... web upload, file chooser etc

String extension = //write the logic for getting the extension


MetaDataEraseable mde = MetaDataFactory.getInstance(extension);
mde.clearMetaData();

Реализация и определение интерфейса могут отличаться в зависимости от ваших требований. Например, вы можете передать файл в качестве аргумента методу clearMetaData ().

Также, пожалуйста, прочитайте http://en.wikipedia.org/wiki/Factory_method_pattern, если вы не знакомы с этим подходом. Google 'фабричный шаблон Java', чтобы получить примеры, ориентированные на Java. Googlw «java get file extension», чтобы помочь вам найти примеры кода для получения расширения файла в Java.

Удачи!

...