已有101人关注
《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书上说的很笼统,我还是不太明白,能不能详细解释一下。
分享到:
精彩评论 1
东北虎
学分:0 LV1
2010-05-06
沙发
d.getPath()表示文件的路径,如c:/zzk
File.separator表示路径和文件名之间的分隔符如/
files[i].getName()表示文件的名称
因此下面内容就是文件保存的完整路径,包括文件名
d.getPath() + File.separator + files[i].getName()
所以下面语句文件复制后的输出路径,包括文件名
FileOutputStream out = new FileOutputStream(new File(d.getPath()+File.separator + files[i].getName())); //复制后文件的保存路径
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照