2011-07-13 9 views
0

アップロードされたファイルのファイル拡張子を読み込み、必要なjavaファイルを呼び出すために必要なインターフェイスのタイプ。例: "hello.pdf"をアップロードした場合は、pdf.javaが呼び出されます(メタデータが消去されます)。これが明確かどうかはわかりませんが、私が言っていることが分かれば教えてください。アップロードされたファイルのファイル拡張子を読み込み、必要なjavaファイルを呼び出すために必要なインターフェイスのタイプ

答えて

1

拡張機能の概要は非常に簡単です。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 } 


} 

次は拡張子に基づいて適切なインスタンスを返します工場を作ることができます

は今、あなたは、メタデータをクリアするためのインタフェースを定義することができます:

public static class 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でファイル拡張子を取得するためのコード例を見つけるのに役立ちます。

幸運を祈る!

+0

「ダム・ダウン・ダウン」できますか? – Samir

関連する問題