【发布时间】:2014-11-07 05:40:09
【问题描述】:
我一直在尝试删除在阅读http get 返回的响应内容时出现的列名。
最初我使用http get 获取内容,然后使用InputStream 读取此内容,然后使用FileOutputStream 将csv 文件写入本地磁盘:
InputStream read_content = result.getEntity().getContent();
FileOutputStream writ = new FileOutputStream(new File(path));
byte[] buff = new byte[4096];
int length;
while ((length = read_content.read(buff)) > 0) {
writ.write(buff, 0, length);
}
这里的result 是我从http get 得到的回复。这很好用,但问题是 响应还包含我要删除的列名。
经过一些修改,我现在正在使用此代码,但输出不正确:
InputStream read_content = result.getEntity().getContent();
BufferedReader reader =
new BufferedReader(new InputStreamReader(read_content));
FileWriter fstream = new FileWriter(path);
BufferedWriter out = new BufferedWriter(fstream);
reader.readLine();
while (reader.readLine() != null) {
out.write(reader.read());
}
当我执行此修改后的代码时,我得到垃圾结果。我在这里做错了什么,如何删除表列名?
【问题讨论】:
-
包含什么标题?
-
@EJP 很抱歉不清楚。标题包含表列名称
-
@EJP 你能告诉我如何使用
BufferedReader.readLine()删除列名吗? -
我认为您以正确的方式进行操作,但是您正在使用
reader.read()写入文件,即使您在写入之前调用了reader.readLine(),这也会从第一行读取。可能会使用另一种替代方法写入文件 -
@looser 很抱歉,但我无法清楚地理解您的意思。一些建议是在写入 csv 之前使用
reader.readline(),所以我使用了它,但它弄乱了整个输出.你能指出我哪里出错了,我怎样才能纠正我上面的代码才能正常工作。
标签: java inputstream bufferedreader fileoutputstream bufferedwriter