使用java语言:org.springframework.core.io.Resource 流式处理其中的csv文件,并添加表头,结果仍为org.springframework.core.io.Resource
时间: 2023-09-30 22:11:29 浏览: 92
我理解了您的问题,您的意思是您使用 `org.springframework.core.io.Resource` 读取CSV文件时,添加了表头,但是输出结果仍然是 `org.springframework.core.io.Resource` 类型,而不是CSV文件的内容。
这是因为您在读取CSV文件之后,没有将读取到的内容输出或进行其他操作,仅仅返回了 `org.springframework.core.io.Resource` 类型的对象。
您可以尝试将读取到的CSV文件内容保存到一个字符串或列表中,然后输出或进行其他操作。以下是一个示例代码:
```java
import org.springframework.core.io.Resource;
import org.springframework.util.StringUtils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
public class CsvReader {
private static final String DEFAULT_DELIMITER = ",";
public static List<String> read(Resource resource, String[] header, String delimiter) throws IOException {
List<String> lines = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
// Add header
if (header != null && header.length > 0) {
lines.add(StringUtils.arrayToDelimitedString(header, delimiter));
}
// Read data
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
}
return lines;
}
public static void main(String[] args) throws Exception {
Resource resource = ... // get the CSV file resource
String[] header = { "Name", "Age", "Gender" };
List<String> lines = read(resource, header, DEFAULT_DELIMITER);
for (String line : lines) {
System.out.println(line);
}
}
}
```
在这个示例代码中,我们将读取到的CSV文件内容保存到了一个 `List<String>` 中,并返回给了调用方。调用方可以遍历这个 `List`,输出或进行其他操作。
希望这个示例代码可以帮助您解决问题,如果还有其他问题,请随时提出。
阅读全文