在不知道类型的情况下从文件读取

时间:2017-12-18 15:57:56

标签: java android methods types

我正在尝试创建我的第一个库,为此我正在从文件库中进行简单的写入/读取。

现在我有保存方法的代码:

@NonNull
public TexterRequest write(List<Object> data) {
    return write(data.toString());
}

@NonNull
public TexterRequest write(String data) {
    return new TexterRequest(context, data);
}

对于&#34;写&#34;部分,我有不同的方法接受不同的参数。如果我想写一个列表,它会将此列表转换为String,然后调用final#34; write&#34;方法并将字符串保存到文件中。

但对于&#34;阅读&#34;方法?我怎样才能读取文件并根据用户选择返回。像这样:

public Object read(String file) {
    File path = context.getFileStreamPath("file" + ".txt");
    if (!path.exists()) return null;
    else return readedFile;
}

然后我应该读取这样的文件:

String readString = read("myFile") // the method should return a string
List<Object> readList = read("myFile") // the method should return a list

这可能吗?什么是最好的方法呢?

1 个答案:

答案 0 :(得分:1)

嗯,对于您的用例,最好的方法是简单地使用两种方法,如下所示。 API将清晰易懂。

final String string = readString("myFile") // return type is String
final List<Object> list = readList("myFile") // return type is List<Object> or List<T>

@NonNull
public String readString(@NonNull String fileName) {
    // Implementation
    return string;
}

@NonNull
public List<Object> readList(@NonNull String fileName) {
    final String string = readString(fileName);
    // Parsing logic to convert to a List
    return list;
}