【发布时间】:2017-05-01 18:56:06
【问题描述】:
public class JavaCopyFileProgram {
public static void main(String[] args)
{
File sourceFile = new File("F:/Study/Java/Java Programs/Factory Methods.txt");
File destFile = new File("D:/DestFile.txt");
FileInputStream inStream = null;
FileOutputStream outStream = null;
try
{
inStream = new FileInputStream(sourceFile);
outStream = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inStream.read(buffer)) != -1)
{
outStream.write(buffer, 0, length);
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
inStream.close();
outStream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
System.out.println("Success");
}
}
我无法理解 thw write() 方法是如何工作的?当它第一次被调用时,它将从 0 索引写入字节数组的长度,但是当它被第二次调用时,它如何将新文本附加到前一个文本的末尾?它应该覆盖以前的内容,因为再次以 0 作为起始索引调用 write。如果我理解错了,请帮助我?
【问题讨论】:
标签: java fileinputstream fileoutputstream