2017-12-18 18 views
0

첫 번째 라이브러리를 만들려고하고 있으며이를 위해 파일 라이브러리에서 간단한 쓰기/읽기를 수행하고 있습니다. 대한형식을 알지 못하는 상태에서 파일 읽기

이 지금은 저장 방법에 대한 코드가 다음 "쓰기"의 경우

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

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

을, 나는 다른 PARAMS을 받아 다른 방법이있다. 목록을 작성하려면이 목록을 String으로 변환 한 다음 최종 "write"메서드를 호출하고 문자열을 파일에 저장합니다.

"읽기"방법은 무엇입니까? 어떻게하면 파일을 읽고 사용자가 선택한 것을 기반으로 돌아갈 수 있습니까? 이런 식으로 뭔가 :이게 가능

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

:

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

그런 다음 나는이 같은 파일을 읽을해야합니까? 무엇이 최선의 방법이 될까요?

답변

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; 
} 
+0

아 .. 저는 단일 "읽기"방법을 사용하여 작업을 단순화하기를 정말로 바랬습니다. 그러나 나는 이것이 지금 가능하다고 생각하지 않는다. 다른 대안이 없으면 나는 당신의 대답을 받아 들일 것입니다. 고맙습니다! – Ravers