0

URLからxmlファイルをインポートしたい。

私のコードは次のとおりです。

URL url = new URL(partnersEntity.getUrl());

            URLConnection urlConnection = url.openConnection();
            urlConnection.setReadTimeout(55000);


            File file = new File(fileURL);


            FileWriter writer = new FileWriter(file);

            IOUtils.copy(urlConnection.getInputStream(), writer);

問題は、XML ファイルに 60000 行あるのに、私のインポートでは 11000 行しか保存されないことです。

問題はどこだ ?

コンテンツの長さを設定できますか?

4

1 に答える 1

0

すべての入出力オブジェクトは閉じる必要があるリソースです。そうしないと、リソースがリークしたり、フラッシュされていないバッファが失われたりします(あなたの場合)。これは、try-finally ブロックで行う必要があります。シナリオの場合:

URL url = new URL(partnersEntity.getUrl());
URLConnection urlConnection = url.openConnection();
urlConnection.setReadTimeout(55000);

InputStream is = urlConnection.getInputStream();    
try
{
    File file = new File(fileURL);
    FileWriter writer = new FileWriter(file);
    try
    {
        IOUtils.copy(is, writer);
    }
    finally
    {
        IOUtils.closeQuietly(writer);
    }
}
finally
{
    IOUtils.closeQuietly(is);
}

Java 7 では、新しい try 構文を使用できます。

URL url = new URL(partnersEntity.getUrl());
URLConnection urlConnection = url.openConnection();
urlConnection.setReadTimeout(55000);


File file = new File(fileURL);

try(
    InputStream is = urlConnection.getInputStream();
    FileWriter writer = new FileWriter(file);
)
{
    IOUtils.copy(is, writer);
}
于 2013-03-01T11:21:55.733 に答える