Discuss / Java / JDK9版本以上可以直接使用input.transferTo(output)方法

JDK9版本以上可以直接使用input.transferTo(output)方法

Topic source

Loading...

#1 Created at ... [Delete] [Delete and Lock User]

jdk8版本方式

        byte[] buffer = new byte[1024];
        int n;
        while ((n=in.read(buffer))!=-1){
            out.write(buffer);
        }
        out.flush();

Loading...

#2 Created at ... [Delete] [Delete and Lock User]

// output.write(buffer); // 占位字符会导致产生字符串末尾产生不可意料的字符

   out.write(Arrays.copyOf(buffer, n));

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

你不要乱写,读的结果是n个字节,不一定读满buffer,写的时候自然也只能写n个字节

out.write(buffer, 0, n);

Loading...

#4 Created at ... [Delete] [Delete and Lock User]

哇偶,第一次被廖大回复,是的,这个自己测得时候就出问题了,忘了读几个写几个,谢谢廖大指正!


  • 1

Reply