
com.qiniu.convert.FileInfoToString Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qsuits Show documentation
Show all versions of qsuits Show documentation
qiniu-suits is a efficient tools for qiniu api implemented by java8.
package com.qiniu.convert;
import com.qiniu.interfaces.IStringFormat;
import com.qiniu.interfaces.ITypeConvert;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.LineUtils;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
public class FileInfoToString implements ITypeConvert {
private IStringFormat stringFormatter;
private List errorList = new ArrayList<>();
public FileInfoToString(String format, String separator, List rmFields) throws IOException {
// 将 file info 的字段逐一进行获取是为了控制输出字段的顺序
if ("json".equals(format)) {
stringFormatter = line -> LineUtils.toFormatString(line, rmFields);
} else if ("csv".equals(format)) {
stringFormatter = line -> LineUtils.toFormatString(line, ",", rmFields);
} else if ("tab".equals(format)) {
stringFormatter = line -> LineUtils.toFormatString(line, separator, rmFields);
} else {
throw new IOException("please check your format for map to string.");
}
}
public List convertToVList(List lineList) {
if (lineList == null || lineList.size() == 0) return new ArrayList<>();
return lineList.stream()
.map(line -> {
try {
return stringFormatter.toFormatString(line);
} catch (IOException e) {
errorList.add(String.valueOf(line) + "\t" + e.getMessage());
return null;
}
})
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
public List getErrorList() {
return errorList;
}
public List consumeErrorList() {
List errors = new ArrayList<>();
Collections.addAll(errors, new String[errorList.size()]);
Collections.copy(errors, errorList);
errorList.clear();
return errors;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy