Определить расширение довольно просто, вызовите 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.
Удачи!