我有一个简单的rest get动词,它读取csv文件并输出一些数据。通过System.out.println将数据发送到控制台非常有效。
现在,当我通过rest调用将相同的数据输出到浏览器时,我得到以下信息。
多余的字符从哪里来?这是我的课。
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getAllCountriesAndCodes() {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("countryandcode.csv");
String line;
String cvsSplitBy = ",";
List<String> myList = new ArrayList<>();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while ((line = bufferedReader.readLine()) != null) {
String[] country = line.split(cvsSplitBy);
myList.add(country[0] + ":" + country[1] + System.getProperty("line.separator"));
System.out.println(country[0] + ":" + country[1]);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return String.valueOf(myList);
}
我正在使用Java 7,Jersey 2.0和IntelliJ 12,如果有区别的话。当我快速观察myList时,数据看起来正确。还有其他格式吗?我将此文件打包在war文件中,然后将其部署到Tomcat 7。
谢谢!
myList是一种类型,List<String>
您将使用返回它String.valueOf(myList);
,它将把myList转换为表单-
[Code:"English Name"
, AD:Andorra
, AE:"United Arab Emirates"
, AF:Afghanistan
, AG:"Antigua and Barbuda"
, AI:Anguilla
, AL:Albania
]
而是尝试将您String.valueOf(myList);
的内容替换为以下内容,
StringBuilder sb = new StringBuilder();
for (String text : myList) {
sb.append(text);
}
return sb.toString();
检查此链接-ArrayList继承AbstractList,AbstractList继承AbstractCollection,因此您可以通过这种方式获得toString()。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句