在Java中通过Inputstream读取内容时删除列名

时间:2014-11-07 05:40:10

标签: java inputstream bufferedreader fileoutputstream bufferedwriter

我一直在尝试删除当我读取http get返回的响应内容时出现的列名。

最初我使用http get获取内容,然后使用InputStream读取此内容,然后使用csvFileOutputStream文件写入本地磁盘:

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());
            }

当我执行此修改后的代码时,我得到垃圾结果。我在这里做错了什么以及如何删除表列名?

2 个答案:

答案 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(),并跳过第一行。