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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sbeeqnui1987 中级黑马   /  2012-6-13 23:03  /  1589 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sbeeqnui1987 于 2012-6-19 21:46 编辑

今天看老师教程:将C盘的一个文本文件复制到D盘
思路是:从C盘读一个字符,就往D盘写一个字符
代码如下
public static void copy_1() throws IOException
        {
                //创建目的地
                FileWriter fw = new FileWriter("RuntimeDemo_copy.txt");

                //与已有文件关联.
                FileReader fr = new FileReader("RuntimeDemo.java");

                int ch = 0;

                while((ch=fr.read())!=-1)
                {
                        fw.write(ch);
                }

                fw.close();
                fr.close();
        }

不明白为什么C盘和D盘在代码中都没有出现,怎么知道是从哪复制到哪呢?
还有new FileWriter("RuntimeDemo_copy.txt")和FileReader fr = new FileReader("RuntimeDemo.java")怎么知道他们都是在操作哪个盘呢?

3 个回复

倒序浏览
本帖最后由 杨雪 于 2012-6-13 23:49 编辑

好吧,我特地还测试了一下。
你写的这个java文件所在的目录,编译的时候,他会默认去这儿找,相当于是一个相对路径。

比如:,你现在编写的这个java文件在D:\java1\DAY 21目录下,and你现在这个RuntimeDemo.java文件存在,并且在D:\java1\DAY 21目录下(如果不存在将会抛出异常(系统找不到指定文件)),也就是你要read的文件刚好跟你现在所编写的在一个目录下哈,如果你这个RuntimeDemo.java不在这个目录,并且就算是在D:\java1下也是不行的,一样报错。

=========================================================
华丽丽的分割线:

不好意思,我重看了一遍这个问题,你说JAVA文件是在C盘的,但是写到D盘去了。。。。这个。。。。表示测试的时候,必须根目录是跟当前编写的文件是一样的,write出去的时候,如果不明确指定是另一个盘,是不会写到别的盘去的,也会是在当前的这个路径写入的。。。你那个问题应该不会存在,不过我好像也老眼昏花看到老师是那样写的(环境变量?应该不会吧,求知情人指点下)

回复 使用道具 举报
  嘿嘿,你把老毕的视频再听一下。第18天中的第13个,然后他就又说:我就拷贝我当前目录下的,明白吧?我存我也存在当前目录下去…………。 {:soso_e113:} 如果要指定哪个盘的话肯定要写,而且格式:c:\\folder\\file,记住是双斜杠
回复 使用道具 举报
你这个应该不会出现你说的这种情况。如果你这个能拷贝成功说明"RuntimeDemo.java这个文件夹跟你运行的这个java文件在同一个文件夹下,生成的文件"RuntimeDemo_copy.txt也将在这个文件夹下而不会出现在别的地方。如果要拷贝到别的地方你必须设置要拷贝到的地方的路径。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马