Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenConnection don';不能导入全部内容_Java_File Io - Fatal编程技术网

Java OpenConnection don';不能导入全部内容

Java OpenConnection don';不能导入全部内容,java,file-io,Java,File Io,我想从URL导入xml文件 我的代码是: URL url = new URL(partnersEntity.getUrl()); URLConnection urlConnection = url.openConnection(); urlConnection.setReadTimeout(55000); File file = new File(fileURL); FileWriter w

我想从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行

问题在哪里


我可以设置内容长度吗?

所有输入输出对象都是资源,应该关闭这些对象,否则将导致资源泄漏或丢失未刷新的缓冲区(您的案例)。它应该在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);
}

您是否有
writer.close()
?好的,这就是问题所在,坦斯克