File 我们需要什么类型的接口来读取上传文件的文件扩展名,然后调用必要的java文件

File 我们需要什么类型的接口来读取上传文件的文件扩展名,然后调用必要的java文件,file,file-upload,interface,upload,File,File Upload,Interface,Upload,我们需要什么类型的接口来读取上传文件的文件扩展名,然后调用必要的java文件。例如:如果您上传了“hello.pdf”,那么它将调用pdf.java(这将清除元数据)。我不知道这是否清楚,但是,如果你明白我的意思,请告诉我。要想知道扩展名相当简单,请调用java.io.File.getName()。这将返回完整的文件名加上扩展名。使用诸如.lastIndexOf(“.”)和substring之类的字符串操作来获取扩展名 现在,您可以定义一个用于清除元数据的接口: public interface

我们需要什么类型的接口来读取上传文件的文件扩展名,然后调用必要的java文件。例如:如果您上传了“hello.pdf”,那么它将调用pdf.java(这将清除元数据)。我不知道这是否清楚,但是,如果你明白我的意思,请告诉我。

要想知道扩展名相当简单,请调用java.io.File.getName()。这将返回完整的文件名加上扩展名。使用诸如.lastIndexOf(“.”)和substring之类的字符串操作来获取扩展名

现在,您可以定义一个用于清除元数据的接口:

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 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()方法

如果您不熟悉这种方法,也请阅读。谷歌“工厂模式java”获取以java为中心的示例。Googlw“java获取文件扩展名”帮助您找到在java中获取文件扩展名的代码示例

祝你好运

能不能请你“安静下来”?