使用单个可重用代码将文件转换为不同的格式

时间:2016-09-22 08:18:57

标签: java

我是API编程的初学者。我正在尝试编写一个可重用的函数,用于将文件从一种格式转换为任何其他格式。我有一个XML文件,我想将其转换为其他文件格式;例如,具有该功能的.json.csv个文件。

我为此创建了一个java bean,但我不确定它是否对我有所帮助。我有点困难如何开始,请提出任何建议,考虑到我的XML文件是所有字符串。

public class converter implements Serializable
{
    public String name;
    public String kind;
    public String url;
    public converter(){}
    public converter(String name, String kind, String url){
        getName(name);
        getKind(kind);
        getUrl(url);    
    }

    private void getUrl(String url) {
        // TODO Auto-generated method stub
        this.url = url;
    }
    private void getKind(String kind) {
        // TODO Auto-generated method stub
        this.kind = kind;
    }
    private void getName(String name) {
        // TODO Auto-generated method stub
        this.name = name;
    }   
}

1 个答案:

答案 0 :(得分:0)

您可以执行strategy pattern之类的操作(或者只是搜索网络,在这个网站上搜索大量内容)。

MonoFoldable

因此,您要使用要操作的文件创建转换器。然后根据要获取的文件类型设置转换算法并调用convert。如果您想转换为其他内容,只需切换转换算法。

用法示例:

class Converter {
    ConversionAlgorithm algo;
    File file; // file to convert

    Converter(File file) {
        this.file = file;
    }

    void setConversionAlgorithm(ConversionAlgorithm algo) {
        this.algo = algo;
    }

    File convert() {
        return algo.convert(file);
    }
}

interface ConversionAlgorithm {
    File convert(File toConvert);
}

class JSONConverter implements ConversionAlgorithm {

    @Override
    File convert(File toConvert) {
        // do the conversion from xml to json
    }
}

class CSVConverter implements ConversionAlgorithm {

    @Override
    File convert(File toConvert) {
        // do the conversion from xml to csv
    }
}

您还可以选择使用class Example { static ConversionAlgorithm xmlTojson = new JSONConverter(); static ConversionAlgorithm xmlTocsv = new CSVConverter(); public static void main(String[] args) { File xml = ... // get it somehow Converter converter = new Converter(xml); converter.setConversionAlgorithm(xmlTojson); File json = converter.convert(); converter.setConversionAlgorithm(xmlTocsv); File csv = converter.convert(); } } 方法更改文件。有很多方法可以解决这个问题。