我一直在尝试删除当我读取http get
返回的响应内容时出现的列名。
最初我使用http get
获取内容,然后使用InputStream
读取此内容,然后使用csv
将FileOutputStream
文件写入本地磁盘:
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());
}
当我执行此修改后的代码时,我得到垃圾结果。我在这里做错了什么以及如何删除表列名?
答案 0 :(得分:1)
Yout代码应该是这样的
BufferedReader br = null ;
BufferedWriter out = null;
try{
InputStream is = new FileInputStream(new File("C:/Space/ConnTest/Test/input.txt"));
br = new BufferedReader(new InputStreamReader(is));
out = new BufferedWriter(new FileWriter(new File("C:/Space/ConnTest/Test/output.txt")));
System.out.println("This is first line ---"+br.readLine());
String str = "";
while ((str = br.readLine()) != null) {
out.write(str);
}
System.out.println("Success");
}
catch(Exception e )
{
e.printStackTrace();
}
finally
{
if(br!=null)
{
br.close();
}
if(out!=null)
{
out.close();
}
}
请勿将整个代码混淆,我只是将您的out.write(reader.read());
替换为
while ((str = br.readLine()) != null) {
out.write(str);
}
我在br.readLine()
中呼叫SYSOUT
,因此会跳过标题。然后我用br.readLine()
答案 1 :(得分:0)
如果是一行,内容的其余部分也是如此,请使用BufferedReader.readLine(),
并跳过第一行。