Java - 写入文件的缓冲区长度

时间:2014-03-15 07:55:13

标签: java arrays buffer

这是一个关于设置缓冲区的字节数组大小以从URL流写入()本地文件的问题:

byte[] buffer = new byte[26]; 
26似乎是神奇的数字。如果我把任何东西放在26以上(比如1024),它仍然只会将前26个字符写入文件。为什么?请注意,我并没有尝试编写整个流(使用while循环),只是想弄清楚为什么最大的块只有26个字符长。

这里是完整的代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;


public class ReadNetworkFile {

    public static void main(String[] args){


        File f2 = new File("target3.txt");

        try {
            OutputStream out = new FileOutputStream(f2);
            URL url = new URL("http://services.explorecalifornia.org/rss/tours.php");
            InputStream stream = url.openStream();

            byte[] buffer = new byte[1024];

            int len=stream.read(buffer);

            out.write(buffer,0,len);


        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你错过了神奇的成分:while-loop

您需要从网上阅读并写入文件而len>那你就完了。