猿问

将 文件 转换为 字节数组 的两个方法有什么区别吗?

源代码1:

        InputStream in = new FileInputStream("E:\\java编程思想.jpg");
        byte[] data = new byte[in.available()];
        in.read(data);

源代码2:

        InputStream in = new FileInputStream("E:\\java编程思想.jpg");
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        byte[] data = null;
        byte[] buf = new byte[1024];
        int numBytesRead = 0;
        while ((numBytesRead = in.read(buf)) != -1) {
            output.write(buf, 0, numBytesRead);
        }
        data = output.toByteArray();
以上两个程序有什么性能上的区别吗?


慕少森
浏览 555回答 3
3回答

翻阅古今

看你内容够用不。第一个一下申请很多内存,小心OOM;第二个慢一点,更安全。

翻过高山走不出你

还有  我想问一下为什么一般创建字节数组的长度都是1024,比如这样:new byte[1024],为什么没见过用1000或其他数字的?
随时随地看视频慕课网APP
我要回答