.csv文件从指定的URL读取

时间:2015-01-16 18:32:29

标签: java csv

我正在使用此java程序从指定的URL读取.csv文件。该程序的唯一问题是它不会将csv文件中的最后64条记录读入myHello.csv文件。这是程序。

package com.aamir;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class TestGetCSV {
    public static void main(String[] args) {
        try {
            URL url12  = new URL("https://wd5-impl-.com/ccx/service/customreport2/-ProjectsFE/YIN.05-get?format=csv" );
            URLConnection uc = url12.openConnection();
            String userpass = "username" + ":" + "password";
            String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());

            uc.setRequestProperty ("Authorization", basicAuth);
            /* HttpURLConnection conn = (HttpURLConnection)uc;
            conn.setInstanceFollowRedirects( false );
            */

            InputStreamReader inStream = new InputStreamReader(uc.getInputStream());
            BufferedReader buff= new BufferedReader(inStream);

            String content2 = null;

            BufferedWriter bf = new BufferedWriter(new FileWriter("D:/myHello.csv"));
            while ((content2 = buff.readLine()) != null) {

                bf.write(content2);
                bf.newLine();
            }
        }
        catch (Exception e){

            System.out.print("Exception");
        }
        System.out.println("done");

    }
}

2 个答案:

答案 0 :(得分:3)

正如@Ultimus所说,你正在读缓冲区两次,只写一次。还要确保你关闭读者和作者,这样他们就会强制冲洗,一切都会完成。

答案 1 :(得分:2)

while循环中,您读取了一条您不需要的行,因此在重新评估while语句时跳过行。