首页上一页 1 下一页尾页 1 条记录 1/1页
《Java开发实战宝典》P410页
发表在Java图书答疑
2010-05-05
是否精华
是
否
版块置顶:
是
否
在本书的410页,有这样一段代码:
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void copy(File[] files, File d) {
if (!d.exists()) //如果指定目录不存在
d.mkdir(); //创建目录
for (int i = 0; i < files.length; i++) { //循环遍历要复制的文件夹
if (files[i].isFile()) { //如果文件夹中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //创建FileInputStream对象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //复制后文件的保存路径
int count = fis.available();
byte[] data = new byte[count];
if ((fis.read(data)) != -1) { //读取文件
out.write(data); //将读取的信息写入文件中
}
out.close(); //关闭流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夹中是一个路径
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在复制后路径中创建子文件夹
des.mkdir();
copy(files[i].listFiles(), des); //再次调用本方法
}
}
System.out.println("文件夹复制成功");
}
在这段代码中我有点疑惑FileOutputStream out = new FileOutputStream(new File(d.getPath()+File.separator + files[i].getName())); //复制后文件的保存路径
shu书上说的很笼统,我还是不太明白,能不能详细解释一下。
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void copy(File[] files, File d) {
if (!d.exists()) //如果指定目录不存在
d.mkdir(); //创建目录
for (int i = 0; i < files.length; i++) { //循环遍历要复制的文件夹
if (files[i].isFile()) { //如果文件夹中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //创建FileInputStream对象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //复制后文件的保存路径
int count = fis.available();
byte[] data = new byte[count];
if ((fis.read(data)) != -1) { //读取文件
out.write(data); //将读取的信息写入文件中
}
out.close(); //关闭流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夹中是一个路径
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在复制后路径中创建子文件夹
des.mkdir();
copy(files[i].listFiles(), des); //再次调用本方法
}
}
System.out.println("文件夹复制成功");
}
在这段代码中我有点疑惑FileOutputStream out = new FileOutputStream(new File(d.getPath()+File.separator + files[i].getName())); //复制后文件的保存路径
shu书上说的很笼统,我还是不太明白,能不能详细解释一下。