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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何超 中级黑马   /  2013-11-29 20:16  /  1695 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何超 于 2013-11-30 09:14 编辑
  1. import java.io.File;


  2. public class B{

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args)throws Exception
  7.         {
  8.                 // TODO Auto-generated method stub

  9.                 File file1=new File("E:\\WOW.txt");
  10.                 File file2=new File("E:\\HOH.txt");
  11.                 System.out.println(file1.renameTo(file2));               

  12.         }

  13. }
复制代码

一直返回false  不管我用的绝对路径还是相对路径 全是false 完全无力
不是 createrNewFile()的问题  会自动创建文件
求解答为什么一直false

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 神马都是浮云

查看全部评分

5 个回复

正序浏览
我createNewFile()自动创建了 一直是跟楼主一样是FALSE
有一次我自己创建了2个文件为TRUE 但后来我又试了下 又不行了
人品问题 还是系统问题?
回复 使用道具 举报
这个问题我想分两种情况:
  第一中情况:E:\\WOW.txt  要已经存在,这样的话重命名成功就会返回true,如果WOW.txt文件本事不存在那将返回false。
另一种情况:如果E盘下,已经存在WOW.txt 和HOH.txt时,那也是会返回false。因为文件名相同导致的。
                                       

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 赞一个!

查看全部评分

回复 使用道具 举报
刚才测试了一下,
楼主代码可以这么写下:
File file1=new File("E:\\WOW.txt");

file1.createNewFile();//我想这句话还是有必要的吧,首先你用这个方法是想代替move这个动作,当然要让这个文件存在吧

            File file2=new File("D:\\HOH.txt");
               
                System.out.println(file1.exists()+" "+file2.exists());//这里返回ture和false
               

                System.out.println(file1.renameTo(file2));  //这里测试是true
希望能帮到你,
还有就是,盘之间的renameto也要注意盘的格式,比如NTFS和FAT32好像不能用这个方法,失败的概率很大。还有就是这个方法要慎用,由于它跟系统关系很大,出错的概率很大
               

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 赞一个!

查看全部评分

回复 使用道具 举报
看来是我理解错了 确实是FLASE
回复 使用道具 举报
事实证明 是正确的 我运行过了
应该是你E盘里面没有相对应的文件

QQ图片20131129204007.jpg (48.24 KB, 下载次数: 84)

QQ图片20131129204007.jpg

评分

参与人数 1技术分 +1 黑马币 +6 收起 理由
枫儿 + 1 + 6 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马