在method参数中指定文件类型

时间:2015-02-12 13:46:47

标签: java file parameters io

我想知道是否可以在类构造函数中要求某种类型的文件?

例如:

    private class name(File location.txt) 

我希望为每种类型的文件格式提供不同的构造函数。我可以写一个方法来检查文件并将其发送到适当的方法,但是想知道是否有可能跳过这个逻辑?

1 个答案:

答案 0 :(得分:0)

我希望这个迷你工厂的样品对你有用:

public class Test {

    private FileReaderFactory fileReaderFactory = new FileReaderFactory();

    public static void main(String[] args) {
        String fileTxt = "test1.txt";
        String filePdf = "test2.pdf";

        Test test = new Test();
        FileTypeI filereaderTxt = test.fileReaderFactory.createFromExtension(fileTxt);
        FileTypeI filereaderPdf = test.fileReaderFactory.createFromExtension(filePdf);

        filereaderTxt.readFile();
        filereaderPdf.readFile();
    }

    public interface FileTypeI {
        void readFile();
    }

    class TextFileReader implements FileTypeI {
        @Override
        public void readFile() {
            //Code to read Text File
        }
    }

    class PDFFileReader implements FileTypeI {
        @Override
        public void readFile() {
            //Code to read PDF File
        }
    }

    class FileReaderFactory {
        public FileTypeI createFromExtension (String filename) {
            FileTypeI returningValue = null;
            if (filename != null && filename.endsWith(".txt")) {
                returningValue = new TextFileReader();
            } 
            else if (filename != null && filename.endsWith(".pdf")) {
                returningValue = new PDFFileReader();
            }
            return returningValue;
        }
    }

}