【发布时间】:2021-08-10 10:41:38
【问题描述】:
我正在使用 Spring 框架,并使用 streamresolution 返回一个 .txt 文件供用户下载。
数据的结果很好,但是每列数据前面都有一个't', 除了最后一列,每列末尾都有一个“w”。
我不明白为什么,因为数据看起来很好,而且我没有告诉程序创建这封信。
这是我的代码:
// A list of String, which are the data, it might looks like 20200810,a,b,c,100,55,.....
// the whole is a String contains comma
List<String> dataList = (List<String>) parameters.get("myData");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
StreamingResolution streamingResolution = null;
ObjectOutputStream oos = new ObjectOutputStream(outputStream);
oos.writeObject("\n");
for (String s : dataList) {
oos.writeObject(s.trim());
oos.writeUTF("\n");
}
streamingResolution = new StreamingResolution("text/plain", new ByteArrayInputStream(outputStream.toByteArray()));
streamingResolution.setCharacterEncoding(CharEncoding.UTF_8);
String year = Integer.toString((Integer.parseInt(end.substring(0, 4));
String day = year + end.substring(4, 6);
oos.close();
return streamingResolution.setFilename(day + ".txt");
当我下载数据时,202108.txt 它可能看起来像
t ?0210810,a,b,c,100,55w
t ?0210810,d,e,f,99,60
谁能告诉我为什么前面会有一个“t” 最后是一个'w'? 以及如何解决这个问题?
非常感谢。
【问题讨论】:
-
您正在尝试将二进制数据作为文本读取。我很惊讶它竟然如此明智。
-
我希望它在这一次更聪明,知道我想要它是什么。 ^^
标签: java spring-mvc