gpt4 book ai didi

java - 在java中复制文本文件

转载 作者:行者123 更新时间:2023-12-01 12:37:57 25 4
gpt4 key购买 nike

这是复制文本文件的代码我对此有一些疑问:

 public class CopyFile {

public static void main(String[] args) {
File f1 = new File("loremipsum.txt");
File f2 = new File("target.txt");

InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);

byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
}
}

我知道它还没有完成,我在这部分有一个问题:

    while ((len = in.read(buf))> 0){
out.write(buf,0,len);

}

我想知道这部分,首先 (len = in.read(buf))> 0 执行并读取数组的所有字节,然后将其长度存储在 len 变量中,< br/>或者读取第一个字节 buf[0] 并将 1 存储在 len 变量中,因为它 >0,所以这部分代码 out.write(buf,0,len); 执行并再次 (len = in.read(buf))> 0还有....

最佳答案

来自文档read(byte[] b) :

从输入流中读取一定数量的字节并将它们存储到缓冲区数组 b 中。实际读取的字节数以整数形式返回。此方法会阻塞,直到输入数据可用、检测到文件结尾或引发异常。

如果b的长度为零,则不读取任何字节,返回0;否则,将尝试读取至少一个字节。如果由于流位于文件末尾而没有可用字节,则返回值 -1;否则,至少读取一个字节并将其存储到 b 中。

读取的第一个字节存储到元素 b[0] 中,下一个字节存储到 b[1] 中,依此类推。读取的字节数最多等于b的长度。设k为实际读取的字节数;这些字节将存储在元素 b[0] 到 b[k-1] 中,元素 b[k] 到 b[b.length-1] 不受影响。

返回:

读入缓冲区的总字节数,如果由于已到达流末尾而没有更多数据,则为 -1。

关于java - 在java中复制文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25400082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com