A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

5黑马币
大体我知道这样:
绝对路径 例如 :  D:\\java\\HelloWorld.txt
相对路径 例如 :  HelloWorld.txt    ---------问题一:不加盘符,这里对否?
但是问题是,复制一个文件夹时,如何复制新的名字给新创建的文件夹呢?
题如下:
private static void copy(File f, String s) {          //问题二:s 是目标文件的绝对路径,但这里的  形参 f 是指源文件吧?  
                try {
                        FileInputStream in = new FileInputStream(f);
                        String name = f.getName();         //获得是源文件的名字
                        String newName = s + "\\" + name;     //问题三:为何可以这样拼接形成新的文件名?是指  绝对路径+名字???
                        FileOutputStream out = new FileOutputStream(newName);

...................................
}
谢谢了!!!


最佳答案

查看完整内容

问题一,不加盘符也就是相对路径,这是对的,用字节流或字符流输出的时候会新建到这个项目的根目录下, FileOutputStream("HelloWorld.txt");FileWrite("HelloWorld.txt"); 根目录就是src,bin文件夹所在的目录; 相对路径和复制文件夹没什么关系,复制文件夹文件夹的名字是不改变的,改变的只是复制文件时读取原文件后输出的新文件的名字,new FileInputStream("HelloWorld.txt");new FileOutputStream("newName"); 问题二,复制文件夹时使 ...

12 个回复

正序浏览
barny 发表于 2016-10-1 17:25
不加盘符,直接输入文件名,只能操作当前的路径下,就是默认是你项目的路径,而加上盘符\文件夹\文件名,这种形 ...

谢谢美女解答!!!
回复 使用道具 举报
楼上回答的都很好,我就路过
回复 使用道具 举报
barny 中级黑马 2016-10-1 17:25:27
10#
不加盘符,直接输入文件名,只能操作当前的路径下,就是默认是你项目的路径,而加上盘符\文件夹\文件名,这种形式是指你明确指定的路径,可以精确定位你需要在硬盘的哪个位置操作.
前端更多用到路径,比如关联图片等,用到的更多是相对路径,这些都是根据个人情况而选择
回复 使用道具 举报
悄然林静 发表于 2016-9-28 21:38
类似于中学物理的参照系,绝对路径的参照系是根目录,相对路径的参照系是指定的目录(当指定的目录是根目录 ...

嗯嗯,感谢大美女的指教!!!
回复 使用道具 举报
类似于中学物理的参照系,绝对路径的参照系是根目录,相对路径的参照系是指定的目录(当指定的目录是根目录时,相对路径也就等同于绝对路径了)
回复 使用道具 举报
wangxikun 发表于 2016-9-27 13:49
简单来说,绝对路径,从根目录为起点到你所在的目录;  相对路径,从一个目录为起点到你所在的目录 ...

谢谢!!!!
回复 使用道具 举报
简单来说,绝对路径,从根目录为起点到你所在的目录;  相对路径,从一个目录为起点到你所在的目录
回复 使用道具 举报
比如说你的C盘ABC文件夹下有两个文件
c:/website/web/index.htm        第一个文件
c:/website/web/photo.jpg        第二个文件

如果要文件1说出文件2的位置(也就是路径),那么它有两种表示方法:
c:/website/web/photo.jpg
这就是绝对路径,指明2文件在C盘ABC文件下,从最大的目录C盘开始表示出来.
photo.jpg
这就是相对路径,因为1文件和2文件都在C:\ABC下,所以它们的路径前面" c:/website/"都是一样,就不用表示出来
了..

至于联系,可以用拼接的方法来实现相对路径与绝对路径的联系,都是路径,
自己多试试就知道了
回复 使用道具 举报
xiaoyao1243 发表于 2016-9-24 22:28
自己的理解,表达不是很好,希望有帮助

今天请教别人弄懂了,感谢细心回答!因为是要复制文件夹下的文件,所以要创建新文件的绝对路径,也就是新文件的地址+\\+源文件的名字。再次感谢了!
回复 使用道具 举报
自己的理解,表达不是很好,希望有帮助
回复 使用道具 举报
问题一,不加盘符也就是相对路径,这是对的,用字节流或字符流输出的时候会新建到这个项目的根目录下,
FileOutputStream("HelloWorld.txt");FileWrite("HelloWorld.txt");
根目录就是src,bin文件夹所在的目录;
相对路径和复制文件夹没什么关系,复制文件夹文件夹的名字是不改变的,改变的只是复制文件时读取原文件后输出的新文件的名字,new FileInputStream("HelloWorld.txt");new FileOutputStream("newName");
问题二,复制文件夹时使用的形参应该是源路径和目标路径,copy(File f, String s)这是构造的方法吧?
copy(File src(源路径), File dest(目标路径))是这样的吧
问题三,String newName也就是复制过来的文件夹路径应该是目标路径 + 源路径.getName();也就是
String newName = dest + src.getName();
回复 使用道具 举报

问题一,不加盘符也就是相对路径,这是对的,用字节流或字符流输出的时候会新建到这个项目的根目录下,
FileOutputStream("HelloWorld.txt");FileWrite("HelloWorld.txt");
根目录就是src,bin文件夹所在的目录;
相对路径和复制文件夹没什么关系,复制文件夹文件夹的名字是不改变的,改变的只是复制文件时读取原文件后输出的新文件的名字,new FileInputStream("HelloWorld.txt");new FileOutputStream("newName");
问题二,复制文件夹时使用的形参应该是源路径和目标路径,copy(File f, String s)这是构造的方法吧?
copy(File src(源路径), File dest(目标路径))是这样的吧
问题三,String newName也就是复制过来的文件夹路径应该是目标路径 + 源路径.getName();也就是
String newName = dest + src.getName();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马